On 01/03/2017 03:59 PM, Shawn Lin wrote: > Hi Ziyuan, > > On 2017/1/3 14:46, Ziyuan Xu wrote: >> Immediately after reset, issue the command which sets >> update_clock_register_only bit, the card clock will restart. >> >> MMC_PM_KEEP_POWER is disabled for SD card and eMMC slots, so that they >> have no chance to invoke dw_mci_setup_bus for update clock behaviour. >> Let's consummate it. >> >> Fixes: e9ed883 ("mmc: dw_mmc: add runtime PM callback") >> Reported-by: Randy Li <randy.li@xxxxxxxxxxxxxx> >> Signed-off-by: Ziyuan Xu <xzy.xu@xxxxxxxxxxxxxx> >> --- >> drivers/mmc/host/dw_mmc.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c >> index b44306b..71715b4 100644 >> --- a/drivers/mmc/host/dw_mmc.c >> +++ b/drivers/mmc/host/dw_mmc.c >> @@ -3357,6 +3357,8 @@ int dw_mci_runtime_resume(struct device *dev) >> if (slot->mmc->pm_flags & MMC_PM_KEEP_POWER) { >> dw_mci_set_ios(slot->mmc, &slot->mmc->ios); >> dw_mci_setup_bus(slot, true); >> + } else { >> + mci_send_cmd(slot, SDMMC_CMD_UPD_CLK, 0); >> } >> } > > Thanks for sending this, but I think the better fix we talked about > offlist may be... > > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -3324,7 +3324,7 @@ int dw_mci_runtime_resume(struct device *dev) > if (ret) > goto err; > > - if (!dw_mci_ctrl_reset(host, SDMMC_CTRL_ALL_RESET_FLAGS)) { > + if (!dw_mci_reset(host)) { > clk_disable_unprepare(host->ciu_clk); > ret = -ENODEV; > goto err; > > > otherwise there still some unhandled cases once the reset is failure. I think Shawn's suggestion is more better..After applied Shawn's suggestion, Is the problem disappeared? If then, could you resend the patch as Shawn's? I don't test yet with exynos..after testing, i will also share. Best Regards, Jaehoon Chung > >> >> > > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html