Given its name the voltage_switch() should be called for any voltage. However currently it is only called for the 1.8V case. That means that the current implementation of the callback could have made this assumption. It seems the case for the f_sdh3 driver. In order to not adding a regression when the voltage_switch() function will be called for the other voltage targets, this patch ensure that the code of the current callback won't be executed for the other case than 1.8V. Cc: Vincent Yang <vincent.yang@xxxxxxxxxxxxxx> Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx> --- drivers/mmc/host/sdhci_f_sdh30.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/mmc/host/sdhci_f_sdh30.c b/drivers/mmc/host/sdhci_f_sdh30.c index 983b8b32ef96..09a341cbd572 100644 --- a/drivers/mmc/host/sdhci_f_sdh30.c +++ b/drivers/mmc/host/sdhci_f_sdh30.c @@ -54,6 +54,10 @@ static void sdhci_f_sdh30_soft_voltage_switch(struct sdhci_host *host) struct f_sdhost_priv *priv = sdhci_priv(host); u32 ctrl = 0; + /* Initially this function was called only for the 1.8V case */ + if (host->mmc->ios.signal_voltage != MMC_SIGNAL_VOLTAGE_180) + return; + usleep_range(2500, 3000); ctrl = sdhci_readl(host, F_SDH30_IO_CONTROL2); ctrl |= F_SDH30_CRES_O_DN; -- 2.5.0 -- 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