Message ID | 20200522162833.59127-1-marex@denx.de |
---|---|
State | Accepted |
Commit | 50a17a69be076316e4c539b75403acfabf9e4c4c |
Headers | show |
Series | mmc: fsl_esdhc: Gracefully fail on unsupported voltage switch | expand |
On 5/23/20 1:28 AM, Marek Vasut wrote: > Unsupported voltage on voltage switch is not an error, do not > print error message in such a case. This happens e.g. if the > eMMC is already in 1V8 mode or when testing 1V2 mode operation > on systems which only do 3V3/1V8 switching. > > Signed-off-by: Marek Vasut <marex at denx.de> > Cc: Fabio Estevam <fabio.estevam at nxp.com> > Cc: Jaehoon Chung <jh80.chung at samsung.com> > Cc: Peng Fan <peng.fan at nxp.com> > Cc: Stefano Babic <sbabic at denx.de> Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com> > --- > drivers/mmc/fsl_esdhc_imx.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c > index f3101a061a..f42e018434 100644 > --- a/drivers/mmc/fsl_esdhc_imx.c > +++ b/drivers/mmc/fsl_esdhc_imx.c > @@ -791,7 +791,7 @@ static int esdhc_set_voltage(struct mmc *mmc) > switch (mmc->signal_voltage) { > case MMC_SIGNAL_VOLTAGE_330: > if (priv->vs18_enable) > - return -EIO; > + return -ENOTSUPP; > #if CONFIG_IS_ENABLED(DM_REGULATOR) > if (!IS_ERR_OR_NULL(priv->vqmmc_dev)) { > ret = regulator_set_value(priv->vqmmc_dev, 3300000); > @@ -972,7 +972,8 @@ static int esdhc_set_ios_common(struct fsl_esdhc_priv *priv, struct mmc *mmc) > if (priv->signal_voltage != mmc->signal_voltage) { > ret = esdhc_set_voltage(mmc); > if (ret) { > - printf("esdhc_set_voltage error %d\n", ret); > + if (ret != -ENOTSUPP) > + printf("esdhc_set_voltage error %d\n", ret); > return ret; > } > } >
diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c index f3101a061a..f42e018434 100644 --- a/drivers/mmc/fsl_esdhc_imx.c +++ b/drivers/mmc/fsl_esdhc_imx.c @@ -791,7 +791,7 @@ static int esdhc_set_voltage(struct mmc *mmc) switch (mmc->signal_voltage) { case MMC_SIGNAL_VOLTAGE_330: if (priv->vs18_enable) - return -EIO; + return -ENOTSUPP; #if CONFIG_IS_ENABLED(DM_REGULATOR) if (!IS_ERR_OR_NULL(priv->vqmmc_dev)) { ret = regulator_set_value(priv->vqmmc_dev, 3300000); @@ -972,7 +972,8 @@ static int esdhc_set_ios_common(struct fsl_esdhc_priv *priv, struct mmc *mmc) if (priv->signal_voltage != mmc->signal_voltage) { ret = esdhc_set_voltage(mmc); if (ret) { - printf("esdhc_set_voltage error %d\n", ret); + if (ret != -ENOTSUPP) + printf("esdhc_set_voltage error %d\n", ret); return ret; } }
Unsupported voltage on voltage switch is not an error, do not print error message in such a case. This happens e.g. if the eMMC is already in 1V8 mode or when testing 1V2 mode operation on systems which only do 3V3/1V8 switching. Signed-off-by: Marek Vasut <marex at denx.de> Cc: Fabio Estevam <fabio.estevam at nxp.com> Cc: Jaehoon Chung <jh80.chung at samsung.com> Cc: Peng Fan <peng.fan at nxp.com> Cc: Stefano Babic <sbabic at denx.de> --- drivers/mmc/fsl_esdhc_imx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)