diff options
author | Axel Lin <axel.lin@gmail.com> | 2012-02-24 10:13:19 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-02-24 10:21:47 -0500 |
commit | 073512336e6333ffcaabbb2b92f8e616db3a0789 (patch) | |
tree | 280e7e61ca080acb02fa1d92403c2f85989f253d | |
parent | 247514344492a0cf602317d2089bab1301922624 (diff) |
regulator: Set delay to 0 if set_voltage_time_sel callback returns error
rdev->desc->ops->set_voltage_time_sel may return negative error code.
Set delay to 0 and also show warning if set_voltage_time_sel returns error.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | drivers/regulator/core.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 603e39f81ce0..b97c4a256636 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c | |||
@@ -1836,8 +1836,12 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev, | |||
1836 | if (ret < 0) | 1836 | if (ret < 0) |
1837 | return ret; | 1837 | return ret; |
1838 | old_selector = ret; | 1838 | old_selector = ret; |
1839 | delay = rdev->desc->ops->set_voltage_time_sel(rdev, | 1839 | ret = rdev->desc->ops->set_voltage_time_sel(rdev, |
1840 | old_selector, selector); | 1840 | old_selector, selector); |
1841 | if (ret < 0) | ||
1842 | rdev_warn(rdev, "set_voltage_time_sel() failed: %d\n", ret); | ||
1843 | else | ||
1844 | delay = ret; | ||
1841 | } | 1845 | } |
1842 | 1846 | ||
1843 | if (best_val != INT_MAX) { | 1847 | if (best_val != INT_MAX) { |