diff options
author | Axel Lin <axel.lin@gmail.com> | 2010-11-05 09:51:32 -0400 |
---|---|---|
committer | Liam Girdwood <lrg@slimlogic.co.uk> | 2010-11-30 10:13:25 -0500 |
commit | e36c1df8e18183ba2c691fe766a52c94020cdc5e (patch) | |
tree | 59196f9c9d1dbd1dcfc6aeef73f5dd84b35ceb15 /drivers/regulator | |
parent | aa7a74040a989eeb7a9265550a2538863e842a93 (diff) |
regulator: Ensure enough delay time for enabling regulator
Integer division will truncate the result, this patch ensures we have
enough delay time for enabling regulator.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/core.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index c3f93b401e90..9da85bc21db4 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c | |||
@@ -1312,10 +1312,12 @@ static int _regulator_enable(struct regulator_dev *rdev) | |||
1312 | if (ret < 0) | 1312 | if (ret < 0) |
1313 | return ret; | 1313 | return ret; |
1314 | 1314 | ||
1315 | if (delay >= 1000) | 1315 | if (delay >= 1000) { |
1316 | mdelay(delay / 1000); | 1316 | mdelay(delay / 1000); |
1317 | else if (delay) | 1317 | udelay(delay % 1000); |
1318 | } else if (delay) { | ||
1318 | udelay(delay); | 1319 | udelay(delay); |
1320 | } | ||
1319 | 1321 | ||
1320 | } else if (ret < 0) { | 1322 | } else if (ret < 0) { |
1321 | printk(KERN_ERR "%s: is_enabled() failed for %s: %d\n", | 1323 | printk(KERN_ERR "%s: is_enabled() failed for %s: %d\n", |