aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2012-02-24 10:13:19 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-02-24 10:21:47 -0500
commit073512336e6333ffcaabbb2b92f8e616db3a0789 (patch)
tree280e7e61ca080acb02fa1d92403c2f85989f253d
parent247514344492a0cf602317d2089bab1301922624 (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.c6
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) {