regulator: core: Use map_voltage_linear() if list_voltage_linear() is in use and nothing is set
Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
3a4b0a07fa
commit
9152c36a3b
1 changed files with 10 additions and 4 deletions
|
@ -2118,12 +2118,18 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev,
|
|||
ret = rdev->desc->ops->set_voltage(rdev, min_uV, max_uV,
|
||||
&selector);
|
||||
} else if (rdev->desc->ops->set_voltage_sel) {
|
||||
if (rdev->desc->ops->map_voltage)
|
||||
if (rdev->desc->ops->map_voltage) {
|
||||
ret = rdev->desc->ops->map_voltage(rdev, min_uV,
|
||||
max_uV);
|
||||
else
|
||||
ret = regulator_map_voltage_iterate(rdev, min_uV,
|
||||
max_uV);
|
||||
} else {
|
||||
if (rdev->desc->ops->list_voltage ==
|
||||
regulator_list_voltage_linear)
|
||||
ret = regulator_map_voltage_linear(rdev,
|
||||
min_uV, max_uV);
|
||||
else
|
||||
ret = regulator_map_voltage_iterate(rdev,
|
||||
min_uV, max_uV);
|
||||
}
|
||||
|
||||
if (ret >= 0) {
|
||||
selector = ret;
|
||||
|
|
Loading…
Reference in a new issue