regulator: Fix pickable ranges mapping
authorMatti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Fri, 12 Jun 2020 09:23:17 +0000 (12:23 +0300)
committerMark Brown <broonie@kernel.org>
Fri, 12 Jun 2020 13:57:17 +0000 (14:57 +0100)
Pickable ranges mapping function never used range min selector. Thus
existing drivers broke when proper linear_ranges functionality was taken
in use. Fix this for now just by ignoring the minimum selector.

Fixes: 60ab7f4153b6 ("regulator: use linear_ranges helper")
Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Link: https://lore.kernel.org/r/20200612090225.GA3243@localhost.localdomain
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/helpers.c

index e970e9d2f8be077f0c31fed28f25999fca5cafb3..e4bb09bbd3fa6e63d78ba8ab68c2c63d6ac2c25b 100644 (file)
@@ -486,7 +486,7 @@ int regulator_map_voltage_pickable_linear_range(struct regulator_dev *rdev,
                        continue;
                }
 
-               ret = selector + sel;
+               ret = selector + sel - range->min_sel;
 
                voltage = rdev->desc->ops->list_voltage(rdev, ret);