On runtime power management resume, the host clock needs to be
enabled before calling tmio_mmc_reset. If the mmc device has a power
domain entry, the host clock is enabled via genpd_runtime_resume,
running before tmio_mmc_host_runtime_resume. If the mmc device has no
power domain entry, however, genpd_runtime_resume is not called. This
patch changes tmio_mmc_host_runtime_resume to enable the host clock
before calling tmio_mmc_reset.

Based on work from Masaharu Hayakawa.

Signed-off-by: Niklas Söderlund <niklas.soderlund+rene...@ragnatech.se>
Tested-by: Wolfram Sang <wsa+rene...@sang-engineering.com>
Reviewed-by: Wolfram Sang <wsa+rene...@sang-engineering.com>
Reviewed-by: Masahiro Yamada <yamada.masah...@socionext.com>
Reviewed-by: Simon Horman <horms+rene...@verge.net.au>
---
 drivers/mmc/host/tmio_mmc_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index a8f917f744fb9f63..35acfa4f40b2ef57 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -1326,8 +1326,8 @@ int tmio_mmc_host_runtime_resume(struct device *dev)
 {
        struct tmio_mmc_host *host = dev_get_drvdata(dev);
 
-       host->reset(host);
        tmio_mmc_clk_enable(host);
+       host->reset(host);
 
        if (host->clk_cache)
                host->set_clock(host, host->clk_cache);
-- 
2.19.1

Reply via email to