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 <[email protected]>
---
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 <[email protected]>
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 <[email protected]>
---
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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to