On 21 February 2018 at 18:19, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > 4.9-stable review patch. If anyone has any objections, please let me know. > > ------------------ > > From: yinbo.zhu <yinbo.zhu@xxxxxxx> > > commit f2bc600008bd6f7f5d0b6b56238d14f95cd454d2 upstream. > > When system wakes up from sleep on ls1046ardb, the SD operation fails > with mmc error messages since ESDHC_TB_EN bit couldn't be cleaned by > eSDHC_SYSCTL[RSTA]. It's proper to clean this bit in esdhc_reset() > rather than in probe. > > Signed-off-by: yinbo.zhu <yinbo.zhu@xxxxxxx> > Acked-by: Yangbo Lu <yangbo.lu@xxxxxxx> > Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > Cc: Rasmus Villemoes <rasmus.villemoes@xxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > --- > drivers/mmc/host/sdhci-of-esdhc.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > --- a/drivers/mmc/host/sdhci-of-esdhc.c > +++ b/drivers/mmc/host/sdhci-of-esdhc.c > @@ -489,10 +489,18 @@ static void esdhc_pltfm_set_bus_width(st > > static void esdhc_reset(struct sdhci_host *host, u8 mask) > { > + u32 val; > + > sdhci_reset(host, mask); > > sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); > sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); > + > + if (mask & SDHCI_RESET_ALL) { > + val = sdhci_readl(host, ESDHC_TBCTL); > + val &= ~ESDHC_TB_EN; > + sdhci_writel(host, val, ESDHC_TBCTL); > + } > } > > #ifdef CONFIG_PM_SLEEP > @@ -584,10 +592,6 @@ static void esdhc_init(struct platform_d > pltfm_host = sdhci_priv(host); > esdhc = sdhci_pltfm_priv(pltfm_host); > > - val = sdhci_readl(host, ESDHC_TBCTL); > - val &= ~ESDHC_TB_EN; > - sdhci_writel(host, val, ESDHC_TBCTL); > - > host_ver = sdhci_readw(host, SDHCI_HOST_VERSION); > esdhc->vendor_ver = (host_ver & SDHCI_VENDOR_VER_MASK) >> > SDHCI_VENDOR_VER_SHIFT; > > Found build failure on 4.9 Please take a look CC net/sunrpc/svcauth.o drivers/mmc/host/sdhci-of-esdhc.c: In function 'esdhc_reset': drivers/mmc/host/sdhci-of-esdhc.c:500:27: error: 'ESDHC_TBCTL' undeclared (first use in this function) val = sdhci_readl(host, ESDHC_TBCTL); ^~~~~~~~~~~ drivers/mmc/host/sdhci-of-esdhc.c:500:27: note: each undeclared identifier is reported only once for each function it appears in drivers/mmc/host/sdhci-of-esdhc.c:501:11: error: 'ESDHC_TB_EN' undeclared (first use in this function) val &= ~ESDHC_TB_EN; ^~~~~~~~~~~ scripts/Makefile.build:293: recipe for target 'drivers/mmc/host/sdhci-of-esdhc.o' failed make[5]: *** [drivers/mmc/host/sdhci-of-esdhc.o] Error 1 make[5]: *** Waiting for unfinished jobs.... CC net/sunrpc/svcauth_unix.o CC drivers/pci/host-bridge.o CC net/sunrpc/addr.o CC net/compat.o CC drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.o scripts/Makefile.build:544: recipe for target 'drivers/mmc/host' failed make[4]: *** [drivers/mmc/host] Error 2 scripts/Makefile.build:544: recipe for target 'drivers/mmc' failed make[3]: *** [drivers/mmc] Error 2 make[3]: *** Waiting for unfinished jobs.... - Naresh