Patch "mmc: sdhci-of-esdhc: fix the mmc error after sleep on ls1046ardb" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
mmc: sdhci-of-esdhc: fix the mmc error after sleep on ls1046ardb
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mmc-sdhci-of-esdhc-fix-the-mmc-error-after-sleep-on-ls1046ardb.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
f2bc600008bd6f7f5d0b6b56238d14f95cd454d2Mon Sep 17 00:00:00 2001
From: "yinbo.zhu" <[email protected]>
Date: Fri, 1 Dec 2017 15:09:34 +0800
Subject: mmc: sdhci-of-esdhc: fix the mmc error after sleep on ls1046ardb
From: yinbo.zhu <[email protected]>
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.
--- drivers/mmc/host/sdhci-of-esdhc.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
drivers/mmc/host/sdhci-of-esdhc.c +8 -4
@@ -489,10 +489,18 @@ static void esdhc_pltfm_set_bus_width(ststatic 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 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/mmc-sdhci-of-esdhc-fix-the-mmc-error-after-sleep-on-ls1046ardb.patch queue-4.9/mmc-sdhci-of-esdhc-fix-emmc-couldn-t-work-after-kexec.patch