Skip to content

Commit

Permalink
mmc: omap_hsmmc: pass mmc_priv struct to gpio init / free
Browse files Browse the repository at this point in the history
this is needed when installing callbacks in the host struct and not
in the platform data, e.g. cover detect irq should be stored in
omap_hsmmc_host and not platform data

Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Andreas Fenkart <afenkart@gmail.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
  • Loading branch information
Andreas Fenkart authored and Ulf Hansson committed Nov 26, 2014
1 parent 326119c commit 1e363e3
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions drivers/mmc/host/omap_hsmmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,8 @@ static inline int omap_hsmmc_have_reg(void)

#endif

static int omap_hsmmc_gpio_init(struct omap_hsmmc_platform_data *pdata)
static int omap_hsmmc_gpio_init(struct omap_hsmmc_host *host,
struct omap_hsmmc_platform_data *pdata)
{
int ret;

Expand Down Expand Up @@ -494,7 +495,8 @@ static int omap_hsmmc_gpio_init(struct omap_hsmmc_platform_data *pdata)
return ret;
}

static void omap_hsmmc_gpio_free(struct omap_hsmmc_platform_data *pdata)
static void omap_hsmmc_gpio_free(struct omap_hsmmc_host *host,
struct omap_hsmmc_platform_data *pdata)
{
if (gpio_is_valid(pdata->gpio_wp))
gpio_free(pdata->gpio_wp);
Expand Down Expand Up @@ -2064,14 +2066,10 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
if (IS_ERR(base))
return PTR_ERR(base);

ret = omap_hsmmc_gpio_init(pdata);
if (ret)
goto err;

mmc = mmc_alloc_host(sizeof(struct omap_hsmmc_host), &pdev->dev);
if (!mmc) {
ret = -ENOMEM;
goto err_alloc;
goto err;
}

host = mmc_priv(mmc);
Expand All @@ -2088,6 +2086,10 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
host->next_data.cookie = 1;
host->pbias_enabled = 0;

ret = omap_hsmmc_gpio_init(host, pdata);
if (ret)
goto err_gpio;

platform_set_drvdata(pdev, host);

if (pdev->dev.of_node)
Expand Down Expand Up @@ -2283,9 +2285,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
if (host->dbclk)
clk_disable_unprepare(host->dbclk);
err1:
omap_hsmmc_gpio_free(host, pdata);
err_gpio:
mmc_free_host(mmc);
err_alloc:
omap_hsmmc_gpio_free(pdata);
err:
return ret;
}
Expand All @@ -2309,7 +2311,7 @@ static int omap_hsmmc_remove(struct platform_device *pdev)
if (host->dbclk)
clk_disable_unprepare(host->dbclk);

omap_hsmmc_gpio_free(host->pdata);
omap_hsmmc_gpio_free(host, host->pdata);
mmc_free_host(host->mmc);

return 0;
Expand Down

0 comments on commit 1e363e3

Please sign in to comment.