On 2017/1/5 15:23, Ziyuan Xu wrote:
It's necessary to setup bus if any slots are present. - update clock after ctrl reset - if the host has genpd node, we can guarantee the clock is available before starting request. Otherwies, the clock register is reset once power off the pd, and host can't output the active clock during communication. fixes: e9ed8835e990 ("mmc: dw_mmc: add runtime PM callback") Reported-by: Randy Li <randy.li@xxxxxxxxxxxxxx> Signed-off-by: Ziyuan Xu <xzy.xu@xxxxxxxxxxxxxx> --- Hi guys, I found a similar issue on rk3399 platform, which has a genpd node for SD card host. Power off-on pd will reset the registers to a default value (ie. CLKENA), so that the host can't output the active clock during communication.
Indeed, Caesar recently introduced all the genpd for rk3399 platform, so we need to restore them.
So we need to setup bus in rpm resume. It also wraps the update clock behaviour which I did in V3. Thanks, Ziyuan Xu Changes in v4: - update commit message - fix SD host rpm resume can't work Changes in v3: - only reset host with active slot. Changes in v2: - update the commit message - use dw_mci_reset instead of dw_mci_ctrl_reset drivers/mmc/host/dw_mmc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index b44306b..b6053b3 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -3354,10 +3354,10 @@ int dw_mci_runtime_resume(struct device *dev) if (!slot) continue; - if (slot->mmc->pm_flags & MMC_PM_KEEP_POWER) { + if (slot->mmc->pm_flags & MMC_PM_KEEP_POWER) dw_mci_set_ios(slot->mmc, &slot->mmc->ios); - dw_mci_setup_bus(slot, true); - } + /* Force setup bus to guarantee available clock output */ + dw_mci_setup_bus(slot, true);
So the spamming message about "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n" will always be there, right? So you could append a new patch to shut up it as I think it's useless no matter for system pm or rpm to print it. How about?
} /* Now that slots are all setup, we can enable card detect */
-- Best Regards Shawn Lin -- 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