mmc: dw_mmc: return error for invalid voltage setting
In certain cases, the VQMMC regulator may not support certain voltages. For instance, a VQMMC regulator which supports only up to 2.7V will not accept 3.3V as an argument. This is unaccounted for, and thus the driver incorrectly assumes that the voltage is set successfully. Fetch the return value in a variable and return if it's non-zero. (-ENOSYS is exempted as it implies that the voltage adjustment functionality as a whole isn't supported). Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org> Reviewed-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
committed by
Peng Fan
parent
e6b66e9f33
commit
0b75109b6a
@@ -649,9 +649,11 @@ static int dwmci_set_ios(struct mmc *mmc)
|
||||
return ret;
|
||||
|
||||
if (mmc->signal_voltage == MMC_SIGNAL_VOLTAGE_180)
|
||||
regulator_set_value(mmc->vqmmc_supply, 1800000);
|
||||
ret = regulator_set_value(mmc->vqmmc_supply, 1800000);
|
||||
else
|
||||
regulator_set_value(mmc->vqmmc_supply, 3300000);
|
||||
ret = regulator_set_value(mmc->vqmmc_supply, 3300000);
|
||||
if (ret && ret != -ENOSYS)
|
||||
return ret;
|
||||
|
||||
ret = regulator_set_enable_if_allowed(mmc->vqmmc_supply, true);
|
||||
if (ret)
|
||||
|
||||
Reference in New Issue
Block a user