diff mbox series

Revert "mmc: tmio: remove workaround for NON_REMOVABLE"

Message ID 20191121111733.23738-1-wsa+renesas@sang-engineering.com (mailing list archive)
State New, archived
Headers show
Series Revert "mmc: tmio: remove workaround for NON_REMOVABLE" | expand

Commit Message

Wolfram Sang Nov. 21, 2019, 11:17 a.m. UTC
This reverts commit 7a7dab237027939cb95dc07c4647b80bad5fbbde. We found
out that there is still a race with RuntimePM. This can lead to a hang
when accessing the eMMC in some situations. Revert this change until the
RPM issue is fixed.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
 drivers/mmc/host/tmio_mmc_core.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Ulf Hansson Nov. 21, 2019, 11:29 a.m. UTC | #1
On Thu, 21 Nov 2019 at 12:17, Wolfram Sang
<wsa+renesas@sang-engineering.com> wrote:
>
> This reverts commit 7a7dab237027939cb95dc07c4647b80bad5fbbde. We found
> out that there is still a race with RuntimePM. This can lead to a hang
> when accessing the eMMC in some situations. Revert this change until the
> RPM issue is fixed.
>
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

Applied for next, adding a reported/tested-by from Geert, thanks!

Let's revisit this after v5.5-rc1.

Kind regards
Uffe

> ---
>  drivers/mmc/host/tmio_mmc_core.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
> index 75f16ff65ac5..c4a1d49fbea4 100644
> --- a/drivers/mmc/host/tmio_mmc_core.c
> +++ b/drivers/mmc/host/tmio_mmc_core.c
> @@ -1209,6 +1209,15 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host)
>         if (!_host->reset)
>                 _host->reset = tmio_mmc_reset;
>
> +       /*
> +        * On Gen2+, eMMC with NONREMOVABLE currently fails because native
> +        * hotplug gets disabled. It seems RuntimePM related yet we need further
> +        * research. Since we are planning a PM overhaul anyway, let's enforce
> +        * for now the device being active by enabling native hotplug always.
> +        */
> +       if (pdata->flags & TMIO_MMC_MIN_RCAR2)
> +               _host->native_hotplug = true;
> +
>         /*
>          * While using internal tmio hardware logic for card detection, we need
>          * to ensure it stays powered for it to work.
> --
> 2.20.1
>
diff mbox series

Patch

diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index 75f16ff65ac5..c4a1d49fbea4 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -1209,6 +1209,15 @@  int tmio_mmc_host_probe(struct tmio_mmc_host *_host)
 	if (!_host->reset)
 		_host->reset = tmio_mmc_reset;
 
+	/*
+	 * On Gen2+, eMMC with NONREMOVABLE currently fails because native
+	 * hotplug gets disabled. It seems RuntimePM related yet we need further
+	 * research. Since we are planning a PM overhaul anyway, let's enforce
+	 * for now the device being active by enabling native hotplug always.
+	 */
+	if (pdata->flags & TMIO_MMC_MIN_RCAR2)
+		_host->native_hotplug = true;
+
 	/*
 	 * While using internal tmio hardware logic for card detection, we need
 	 * to ensure it stays powered for it to work.