regulator: of: Don't flag voltage change as possible for exact voltages
authorMark Brown <broonie@kernel.org>
Wed, 30 Mar 2016 15:26:09 +0000 (08:26 -0700)
committerMark Brown <broonie@kernel.org>
Wed, 30 Mar 2016 15:26:09 +0000 (08:26 -0700)
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 <broonie@kernel.org>
drivers/regulator/of_regulator.c

index f45106a44635c414451dee7e3b0b1b00df7f54ee..cd828dbf9d529e6d459c9e9eae65c6d252b7a1e4 100644 (file)
@@ -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;