Commit 0ea28210 authored by Ben Hutchings's avatar Ben Hutchings Committed by Ulf Hansson

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: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 7962fc37
...@@ -131,16 +131,15 @@ static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) ...@@ -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 ...@@ -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 { ...@@ -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) ...@@ -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) ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment