diff options
Diffstat (limited to 'drivers/regulator/core.c')
-rw-r--r-- | drivers/regulator/core.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 52a9bae10393..ebdd9e0e14d4 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c | |||
@@ -2142,7 +2142,7 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev, | |||
2142 | if (rdev->desc->ops->list_voltage) | 2142 | if (rdev->desc->ops->list_voltage) |
2143 | best_val = rdev->desc->ops->list_voltage(rdev, selector); | 2143 | best_val = rdev->desc->ops->list_voltage(rdev, selector); |
2144 | else | 2144 | else |
2145 | best_val = -1; | 2145 | best_val = _regulator_get_voltage(rdev); |
2146 | 2146 | ||
2147 | /* Call set_voltage_time_sel if successfully obtained old_selector */ | 2147 | /* Call set_voltage_time_sel if successfully obtained old_selector */ |
2148 | if (_regulator_is_enabled(rdev) && ret == 0 && old_selector >= 0 && | 2148 | if (_regulator_is_enabled(rdev) && ret == 0 && old_selector >= 0 && |
@@ -2165,9 +2165,9 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev, | |||
2165 | udelay(delay); | 2165 | udelay(delay); |
2166 | } | 2166 | } |
2167 | 2167 | ||
2168 | if (ret == 0) | 2168 | if (ret == 0 && best_val >= 0) |
2169 | _notifier_call_chain(rdev, REGULATOR_EVENT_VOLTAGE_CHANGE, | 2169 | _notifier_call_chain(rdev, REGULATOR_EVENT_VOLTAGE_CHANGE, |
2170 | NULL); | 2170 | (void *)best_val); |
2171 | 2171 | ||
2172 | trace_regulator_set_voltage_complete(rdev_get_name(rdev), best_val); | 2172 | trace_regulator_set_voltage_complete(rdev_get_name(rdev), best_val); |
2173 | 2173 | ||