From b63a6e6e3ff851090c3bdf666d480239e019fa7e Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Wed, 30 Mar 2016 08:26:09 -0700 Subject: [PATCH] UPSTREAM: regulator: of: Don't flag voltage change as possible for exact voltages Flagging voltage changes as possible for exactly specified voltages appears to be triggering bugs in the SDHCI code (it should be able to handle the case where only one voltage it wants is in the range it is allowed to set) so make sure we only set the flag in cases where there's genuine variability. Signed-off-by: Mark Brown (cherry picked from commit 45fa2038cf7820ecfcca8793b81e656ca3caaf0f) Change-Id: I68c5c8fd3ca2da2ddb07af125f57158441040af3 Signed-off-by: David Wu --- drivers/regulator/of_regulator.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index f45106a44635..cd828dbf9d52 100644 --- a/drivers/regulator/of_regulator.c +++ b/drivers/regulator/of_regulator.c @@ -43,10 +43,12 @@ static void of_get_regulation_constraints(struct device_node *np, constraints->max_uV = pval; /* Voltage change possible? */ - if (constraints->min_uV && constraints->max_uV) { + if (constraints->min_uV != constraints->max_uV) constraints->valid_ops_mask |= REGULATOR_CHANGE_VOLTAGE; + + /* Do we have a voltage range, if so try to apply it? */ + if (constraints->min_uV && constraints->max_uV) constraints->apply_uV = true; - } if (!of_property_read_u32(np, "regulator-microvolt-offset", &pval)) constraints->uV_offset = pval; -- 2.34.1