Thread (4 messages) 4 messages, 3 authors, 2017-02-14

Re: [PATCH v5 2/2] mmc: dw_mmc: force setup bus if active slots exist

From: Eddie Cai <hidden>
Date: 2017-02-13 06:32:38
Also in: linux-mmc, linux-rockchip

Hi Heiko

I guess you may lost this patch. We need it to prevent crash when boot
up RK3288.

2017-01-13 10:59 GMT+08:00 Shawn Lin [off-list ref]:
quoted hunk ↗ jump to hunk
From: Ziyuan Xu <redacted>

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")
Fixes: df9bcc2bc0a1 ("mmc: dw_mmc: add missing codes for runtime resume")
cc: <redacted>
Reported-by: Randy Li <redacted>
Reported-by: S. Gilles <redacted>
Signed-off-by: Ziyuan Xu <redacted>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

---

Changes in v5:
- rebase in order to skip spamming log

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 | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index dc58ec3..0914d53 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -3367,10 +3367,11 @@ 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, true);
-               }
+
+               /* Force setup bus to guarantee available clock output */
+               dw_mci_setup_bus(slot, true, true);
        }

        /* Now that slots are all setup, we can enable card detect */
--
1.9.1



_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help