summaryrefslogtreecommitdiff
path: root/drivers/regulator/core.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-07-12 11:20:37 +0900
committerLiam Girdwood <lrg@slimlogic.co.uk>2011-07-22 11:43:00 +0100
commit89f425ed5bf3d4fd97e840296dccd75b8e0fe4c9 (patch)
tree16d384fbeadbeba18685803588a459c0db415a58 /drivers/regulator/core.c
parent39aa9b6e3cb1b2a564d3422eedb7f725179162d3 (diff)
regulator: Make core more chatty about some errors
Prevent some head scratching by making the core log about some rare but possible errors with invalid voltage ranges and modes being set. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'drivers/regulator/core.c')
-rw-r--r--drivers/regulator/core.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index f59821f10fdc..3700d0953d73 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -151,8 +151,11 @@ static int regulator_check_voltage(struct regulator_dev *rdev,
if (*min_uV < rdev->constraints->min_uV)
*min_uV = rdev->constraints->min_uV;
- if (*min_uV > *max_uV)
+ if (*min_uV > *max_uV) {
+ rdev_err(rdev, "unsupportable voltage range: %d-%duV\n",
+ min_uV, max_uV);
return -EINVAL;
+ }
return 0;
}
@@ -205,8 +208,11 @@ static int regulator_check_current_limit(struct regulator_dev *rdev,
if (*min_uA < rdev->constraints->min_uA)
*min_uA = rdev->constraints->min_uA;
- if (*min_uA > *max_uA)
+ if (*min_uA > *max_uA) {
+ rdev_err(rdev, "unsupportable current range: %d-%duA\n",
+ min_uA, max_uA);
return -EINVAL;
+ }
return 0;
}
@@ -221,6 +227,7 @@ static int regulator_mode_constrain(struct regulator_dev *rdev, int *mode)
case REGULATOR_MODE_STANDBY:
break;
default:
+ rdev_err(rdev, "invalid mode %x specified\n", *mode);
return -EINVAL;
}