mmc: tmio, sh_mobile_sdhi: Pass tmio_mmc_host ptr to clk_{enable, disable} ops
Change the clk_enable operation to take a pointer to the struct tmio_mmc_host and have it set f_max. For consistency, also change the clk_disable operation to take a pointer to struct tmio_mmc_host. Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
7962fc376f
commit
0ea28210c1
|
@ -131,16 +131,15 @@ static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width)
|
||||||
sd_ctrl_write16(host, EXT_ACC, val);
|
sd_ctrl_write16(host, EXT_ACC, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sh_mobile_sdhi_clk_enable(struct platform_device *pdev, unsigned int *f)
|
static int sh_mobile_sdhi_clk_enable(struct tmio_mmc_host *host)
|
||||||
{
|
{
|
||||||
struct mmc_host *mmc = platform_get_drvdata(pdev);
|
struct mmc_host *mmc = host->mmc;
|
||||||
struct tmio_mmc_host *host = mmc_priv(mmc);
|
|
||||||
struct sh_mobile_sdhi *priv = host_to_priv(host);
|
struct sh_mobile_sdhi *priv = host_to_priv(host);
|
||||||
int ret = clk_prepare_enable(priv->clk);
|
int ret = clk_prepare_enable(priv->clk);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
*f = clk_get_rate(priv->clk);
|
mmc->f_max = clk_get_rate(priv->clk);
|
||||||
|
|
||||||
/* enable 16bit data access on SDBUF as default */
|
/* enable 16bit data access on SDBUF as default */
|
||||||
sh_mobile_sdhi_sdbuf_width(host, 16);
|
sh_mobile_sdhi_sdbuf_width(host, 16);
|
||||||
|
@ -148,11 +147,10 @@ static int sh_mobile_sdhi_clk_enable(struct platform_device *pdev, unsigned int
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sh_mobile_sdhi_clk_disable(struct platform_device *pdev)
|
static void sh_mobile_sdhi_clk_disable(struct tmio_mmc_host *host)
|
||||||
{
|
{
|
||||||
struct mmc_host *mmc = platform_get_drvdata(pdev);
|
|
||||||
struct tmio_mmc_host *host = mmc_priv(mmc);
|
|
||||||
struct sh_mobile_sdhi *priv = host_to_priv(host);
|
struct sh_mobile_sdhi *priv = host_to_priv(host);
|
||||||
|
|
||||||
clk_disable_unprepare(priv->clk);
|
clk_disable_unprepare(priv->clk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,8 +95,8 @@ struct tmio_mmc_host {
|
||||||
bool sdio_irq_enabled;
|
bool sdio_irq_enabled;
|
||||||
|
|
||||||
int (*write16_hook)(struct tmio_mmc_host *host, int addr);
|
int (*write16_hook)(struct tmio_mmc_host *host, int addr);
|
||||||
int (*clk_enable)(struct platform_device *pdev, unsigned int *f);
|
int (*clk_enable)(struct tmio_mmc_host *host);
|
||||||
void (*clk_disable)(struct platform_device *pdev);
|
void (*clk_disable)(struct tmio_mmc_host *host);
|
||||||
int (*multi_io_quirk)(struct mmc_card *card,
|
int (*multi_io_quirk)(struct mmc_card *card,
|
||||||
unsigned int direction, int blk_size);
|
unsigned int direction, int blk_size);
|
||||||
};
|
};
|
||||||
|
|
|
@ -845,7 +845,7 @@ static int tmio_mmc_clk_update(struct tmio_mmc_host *host)
|
||||||
if (!host->clk_enable)
|
if (!host->clk_enable)
|
||||||
return -ENOTSUPP;
|
return -ENOTSUPP;
|
||||||
|
|
||||||
ret = host->clk_enable(host->pdev, &mmc->f_max);
|
ret = host->clk_enable(host);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
mmc->f_min = mmc->f_max / 512;
|
mmc->f_min = mmc->f_max / 512;
|
||||||
|
|
||||||
|
@ -1251,7 +1251,7 @@ int tmio_mmc_host_runtime_suspend(struct device *dev)
|
||||||
tmio_mmc_clk_stop(host);
|
tmio_mmc_clk_stop(host);
|
||||||
|
|
||||||
if (host->clk_disable)
|
if (host->clk_disable)
|
||||||
host->clk_disable(host->pdev);
|
host->clk_disable(host);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue