diff options
author | Linus Walleij <linus.walleij@stericsson.com> | 2009-08-26 12:54:04 +0200 |
---|---|---|
committer | Liam Girdwood <lrg@slimlogic.co.uk> | 2009-09-22 13:32:43 +0100 |
commit | a7433cff9ed8e7982de8e0f210f0325d0f3d1949 (patch) | |
tree | bee9e9a62dace73825fece589dc32c82a95ae02c | |
parent | 9e108d33edcb88bac3db39ba1683fc2c0591d7d4 (diff) | |
download | linux-a7433cff9ed8e7982de8e0f210f0325d0f3d1949.tar.gz linux-a7433cff9ed8e7982de8e0f210f0325d0f3d1949.tar.bz2 linux-a7433cff9ed8e7982de8e0f210f0325d0f3d1949.zip |
REGULATOR Handle positive returncode from enable
This makes _regulator_enable() properly handle the case where
a regulator is already on when you try to enable it. Currently
it will erroneously handle positive return values as an error.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
-rw-r--r-- | drivers/regulator/core.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index dbf27bf028c4..744ea1d0b59b 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -1236,11 +1236,12 @@ static int _regulator_enable(struct regulator_dev *rdev) } else { return -EINVAL; } - } else { + } else if (ret < 0) { printk(KERN_ERR "%s: is_enabled() failed for %s: %d\n", __func__, rdev->desc->name, ret); return ret; } + /* Fallthrough on positive return values - already enabled */ } rdev->use_count++; |