[PATCH RFT] regulator: palmas: Fix off-by-one for ramp_delay andregister value mapping

From: Axel Lin
Date: Sun Apr 21 2013 - 12:58:53 EST


In probe(), we have below code to set ramp_delay:
e.g. When reg is 2, current code set
pmic->desc[id].ramp_delay = palmas_smps_ramp_delay[reg & 0x3];
= 5000
which means ramp_delay = 5000 is mapping to reg value = 2;

However, in palmas_smps_set_ramp_delay()
ramp_delay = 5000 is mapping to reg value = 1.

This patch fixes the off-by-one value range checking for ramp_delay in
palmas_smps_set_ramp_delay().

Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
---
Hi Laxman,
I don't have the datasheet, so please check if this fix is correct.

Thanks,
Axel
drivers/regulator/palmas-regulator.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 8fed60c..e3e8373 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -447,9 +447,9 @@ static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev,

if (ramp_delay <= 0)
reg = 0;
- else if (ramp_delay < 2500)
+ else if (ramp_delay <= 2500)From 6f6875db93eeff52d39623dd68522e1875cf5ef1 Mon Sep 17 00:00:00 2001
From: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Mon, 22 Apr 2013 00:50:55 +0800
Subject: [PATCH RFT] regulator: palmas: Fix off-by-one for ramp_delay and register value mapping

In probe(), we have below code to set ramp_delay:
e.g. When reg is 2, current code set
pmic->desc[id].ramp_delay = palmas_smps_ramp_delay[reg & 0x3];
= 5000
which means ramp_delay = 5000 is mapping to reg value = 2;

However, in palmas_smps_set_ramp_delay()
ramp_delay = 5000 is mapping to reg value = 1.

This patch fixes the off-by-one value range checking for ramp_delay in
palmas_smps_set_ramp_delay().

Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
---
Hi Laxman,
I don't have the datasheet, so please check if this fix is correct.

Thanks,
Axel
drivers/regulator/palmas-regulator.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 8fed60c..e3e8373 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -447,9 +447,9 @@ static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev,

if (ramp_delay <= 0)
reg = 0;
- else if (ramp_delay < 2500)
+ else if (ramp_delay <= 2500)
reg = 3;
- else if (ramp_delay < 5000)
+ else if (ramp_delay <= 5000)
reg = 2;
else
reg = 1;
--
1.7.10.4


reg = 3;
- else if (ramp_delay < 5000)
+ else if (ramp_delay <= 5000)
reg = 2;
else
reg = 1;
--
1.7.10.4



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/