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 --- drivers/regulator/core.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index f59821f..3700d09 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; }