On 21 February 2018 at 18:19, Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
4.9-stable review patch. If anyone has any objections, please let me know.
From: yinbo.zhu yinbo.zhu@nxp.com
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@nxp.com Acked-by: Yangbo Lu yangbo.lu@nxp.com Acked-by: Adrian Hunter adrian.hunter@intel.com Signed-off-by: Ulf Hansson ulf.hansson@linaro.org Cc: Rasmus Villemoes rasmus.villemoes@prevas.dk Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
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