mmc: dw_mmc: force setup bus if active slots exist
authorZiyuan Xu <xzy.xu@rock-chips.com>
Tue, 17 Jan 2017 01:22:56 +0000 (09:22 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 23 Jan 2017 09:19:30 +0000 (10:19 +0100)
commite9748e0364fe82dc037d22900ff13a62d04518bf
tree09c9b72e50f007ef59a19beb173bad5eabb398db
parent7a308bb3016f57e5be11a677d15b821536419d36
mmc: dw_mmc: force setup bus if active slots exist

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: <stable@vger.kernel.org>
Reported-by: Randy Li <randy.li@rock-chips.com>
Reported-by: S. Gilles <sgilles@math.umd.edu>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/dw_mmc.c