Re: [PATCH] mmc: sdhci: ignore restoring the I/O state if MMC_POWER_OFF

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

 



On 3 August 2017 at 21:28, Zhoujie Wu <zjwu@xxxxxxxxxxx> wrote:
> One issue was found on a removable high speed sd card with
> runtime pm enabled.
> When SD card is unplugged, it keep printing "Switching to 3.3V
> signalling voltage failed".
> And found below sequence triggers the error.
>
> mmc_rescan
>         -> mmc_sd_detect
>                 -> mmc_power_off  -- mmc->ios.vdd is updated to 0.
>         -> mmc_claim_host
>                 -> sdhci_runtime_resume_host
>                         -> sdhci_start_signal_voltage_switch
>                                 -> mmc_regulator_set_vqmmc
>                                         -> mmc_ocrbitnum_to_vdd
>
> When mmc_ocrbitnum_to_vdd is called, the mmc->ios.vdd is 0, so it
> always return -EINVAL. The signal switch will always fail and
> print out warning.
> Ignore restoring the I/O state when runtime resume if MMC_POWER_OFF.
>
> Signed-off-by: Zhoujie Wu <zjwu@xxxxxxxxxxx>
> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>

Thanks, applied for next!

Kind regards
Uffe

> ---
> This patch is the updated version for my previous patch
> mmc: sdhci: ignore 3.3v voltage switch if ios.vdd is 0.
> Suggested by Adrian, so added his name in signed-off-by as well.
>
>  drivers/mmc/host/sdhci.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 98700f9..c3f67f1 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -2934,7 +2934,8 @@ int sdhci_runtime_resume_host(struct sdhci_host *host)
>
>         sdhci_init(host, 0);
>
> -       if (mmc->ios.power_mode != MMC_POWER_UNDEFINED) {
> +       if (mmc->ios.power_mode != MMC_POWER_UNDEFINED &&
> +           mmc->ios.power_mode != MMC_POWER_OFF) {
>                 /* Force clock and power re-program */
>                 host->pwr = 0;
>                 host->clock = 0;
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux