Skip to content

Commit

Permalink
regulator: core: Simplify error flow in _regulator_do_set_voltage()
Browse files Browse the repository at this point in the history
If the voltage can not be set jump to the end of the function. This
avoids having to check for an error multiple times and eliminates one
level of nesting in a follow-up change.

Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Matthias Kaehlcke authored and Mark Brown committed Sep 16, 2016
1 parent 57995a4 commit 31dfe68
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions drivers/regulator/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2800,8 +2800,11 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev,
ret = -EINVAL;
}

if (ret)
goto out;

/* Call set_voltage_time_sel if successfully obtained old_selector */
if (ret == 0 && !rdev->constraints->ramp_disable && old_selector >= 0
if (!rdev->constraints->ramp_disable && old_selector >= 0
&& old_selector != selector) {

delay = ops->set_voltage_time_sel(rdev,
Expand All @@ -2821,13 +2824,14 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev,
}
}

if (ret == 0 && best_val >= 0) {
if (best_val >= 0) {
unsigned long data = best_val;

_notifier_call_chain(rdev, REGULATOR_EVENT_VOLTAGE_CHANGE,
(void *)data);
}

out:
trace_regulator_set_voltage_complete(rdev_get_name(rdev), best_val);

return ret;
Expand Down

0 comments on commit 31dfe68

Please sign in to comment.