regulator: Set delay to 0 if set_voltage_time_sel callback returns error
authorAxel Lin <axel.lin@gmail.com>
Fri, 24 Feb 2012 15:13:19 +0000 (23:13 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 24 Feb 2012 15:21:47 +0000 (15:21 +0000)
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>
drivers/regulator/core.c

index 603e39f..b97c4a2 100644 (file)
@@ -1836,8 +1836,12 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev,
                        if (ret < 0)
                                return ret;
                        old_selector = ret;
-                       delay = rdev->desc->ops->set_voltage_time_sel(rdev,
+                       ret = rdev->desc->ops->set_voltage_time_sel(rdev,
                                                old_selector, selector);
+                       if (ret < 0)
+                               rdev_warn(rdev, "set_voltage_time_sel() failed: %d\n", ret);
+                       else
+                               delay = ret;
                }
 
                if (best_val != INT_MAX) {