Commit 19280e40 authored by Axel Lin's avatar Axel Lin Committed by Mark Brown

regulator: core: Fix continuous_voltage_range case in regulator_can_change_voltage

Regulator drivers with continuous_voltage_range flag set allows not setting
n_voltages. Thus if continuous_voltage_range is set, check the constraint range
instead.
Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent a49f0d1e
...@@ -1885,10 +1885,16 @@ int regulator_can_change_voltage(struct regulator *regulator) ...@@ -1885,10 +1885,16 @@ int regulator_can_change_voltage(struct regulator *regulator)
struct regulator_dev *rdev = regulator->rdev; struct regulator_dev *rdev = regulator->rdev;
if (rdev->constraints && if (rdev->constraints &&
rdev->constraints->valid_ops_mask & REGULATOR_CHANGE_VOLTAGE && (rdev->constraints->valid_ops_mask & REGULATOR_CHANGE_VOLTAGE)) {
(rdev->desc->n_voltages - rdev->desc->linear_min_sel) > 1) if (rdev->desc->n_voltages - rdev->desc->linear_min_sel > 1)
return 1; return 1;
if (rdev->desc->continuous_voltage_range &&
rdev->constraints->min_uV && rdev->constraints->max_uV &&
rdev->constraints->min_uV != rdev->constraints->max_uV)
return 1;
}
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(regulator_can_change_voltage); EXPORT_SYMBOL_GPL(regulator_can_change_voltage);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment