Re: [PATCH 4.9 77/77] mmc: sdhci-of-esdhc: fix the mmc error after sleep on ls1046ardb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]