From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031002AbdAEHsS (ORCPT ); Thu, 5 Jan 2017 02:48:18 -0500 Received: from lucky1.263xmail.com ([211.157.147.131]:52245 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752568AbdAEHsJ (ORCPT ); Thu, 5 Jan 2017 02:48:09 -0500 X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-RL-SENDER: shawn.lin@rock-chips.com X-FST-TO: linux-rockchip@lists.infradead.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: shawn.lin@rock-chips.com X-UNIQUE-TAG: <643d85dc33005669b8a78d947a225457> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Subject: Re: [PATCH v4] mmc: dw_mmc: force setup bus if active slots exist To: Ziyuan Xu , ulf.hansson@linaro.org, jh80.chung@samsung.com, shawn.lin@rock-chips.com References: <1483601012-18241-1-git-send-email-xzy.xu@rock-chips.com> Cc: shawn.lin@rock-chips.com, randy.li@rock-chips.com, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org From: Shawn Lin Message-ID: <49544a65-9b3c-c56a-e5f7-89c5fa6e6cd0@rock-chips.com> Date: Thu, 5 Jan 2017 15:34:16 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <1483601012-18241-1-git-send-email-xzy.xu@rock-chips.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > Signed-off-by: Ziyuan Xu > > --- > 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