mmc: host: tmio: disable clocks when unbinding

Create a helper function to disable clocks and use it in remove(), too.
Now, clk_summary in debugfs reports the clocks as disabled and
unprepared after unbinding.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Wolfram Sang 2017-01-17 21:26:01 +01:00 committed by Ulf Hansson
parent 44bf23128f
commit dfcba5ffca

View File

@ -900,6 +900,12 @@ static int tmio_mmc_clk_enable(struct tmio_mmc_host *host)
return host->clk_enable(host); return host->clk_enable(host);
} }
static void tmio_mmc_clk_disable(struct tmio_mmc_host *host)
{
if (host->clk_disable)
host->clk_disable(host);
}
static void tmio_mmc_power_on(struct tmio_mmc_host *host, unsigned short vdd) static void tmio_mmc_power_on(struct tmio_mmc_host *host, unsigned short vdd)
{ {
struct mmc_host *mmc = host->mmc; struct mmc_host *mmc = host->mmc;
@ -1284,6 +1290,8 @@ void tmio_mmc_host_remove(struct tmio_mmc_host *host)
pm_runtime_put_sync(&pdev->dev); pm_runtime_put_sync(&pdev->dev);
pm_runtime_disable(&pdev->dev); pm_runtime_disable(&pdev->dev);
tmio_mmc_clk_disable(host);
} }
EXPORT_SYMBOL(tmio_mmc_host_remove); EXPORT_SYMBOL(tmio_mmc_host_remove);
@ -1298,8 +1306,7 @@ int tmio_mmc_host_runtime_suspend(struct device *dev)
if (host->clk_cache) if (host->clk_cache)
tmio_mmc_clk_stop(host); tmio_mmc_clk_stop(host);
if (host->clk_disable) tmio_mmc_clk_disable(host);
host->clk_disable(host);
return 0; return 0;
} }