[PATCH] mmc: sdhci: switch voltage before sdhci_set_ios in runtime resume

Ulf Hansson ulf.hansson at linaro.org
Thu Jan 29 02:28:53 PST 2015


On 29 January 2015 at 10:42, Jisheng Zhang <jszhang at marvell.com> wrote:
> I observed the Host Control2 register isn't correctly restored
> after runtime resuming on BG2Q. For example, the register reads
> as 0x800c before runtime suspend, but it's set as 0x8004 after runtime
> resuming. This could results in a non working host.
>
> The reason is the Host Control2 is incorrectly reset when switching
> voltage. We fix this by following the same sequence during initialization.
>
> Signed-off-by: Jisheng Zhang <jszhang at marvell.com>

Thanks! Applied for next.

Kind regards
Uffe

> ---
>  drivers/mmc/host/sdhci.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index c9881ca..0ad412a 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -2871,9 +2871,9 @@ int sdhci_runtime_resume_host(struct sdhci_host *host)
>         /* Force clock and power re-program */
>         host->pwr = 0;
>         host->clock = 0;
> +       sdhci_do_start_signal_voltage_switch(host, &host->mmc->ios);
>         sdhci_do_set_ios(host, &host->mmc->ios);
>
> -       sdhci_do_start_signal_voltage_switch(host, &host->mmc->ios);
>         if ((host_flags & SDHCI_PV_ENABLED) &&
>                 !(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN)) {
>                 spin_lock_irqsave(&host->lock, flags);
> --
> 2.1.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the linux-arm-kernel mailing list