Messages in this thread Patch in this message | | | From | axel lin <> | Date | Thu, 11 Mar 2010 09:56:34 +0800 | Subject | [PATCH] lp3971: Fix BUCK_VOL_CHANGE_SHIFT logic |
| |
From 99175ed0f281d54efdaf8eef548077a8f0b4924a Mon Sep 17 00:00:00 2001 From: Axel Lin <axel.lin@gmail.com> Date: Thu, 11 Mar 2010 09:50:07 +0800 Subject: [PATCH] lp3971: Fix BUCK_VOL_CHANGE_SHIFT logic
Given x=0,1,2, current implementation of BUCK_VOL_CHANGE_SHIFT(x) returns 0,4,8. The correct return value should be 0,4,6. This patch fix the logic.
Signed-off-by: Axel Lin <axel.lin@gmail.com> --- drivers/regulator/lp3971.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/regulator/lp3971.c b/drivers/regulator/lp3971.c index a28ae37..1ba61ab 100644 --- a/drivers/regulator/lp3971.c +++ b/drivers/regulator/lp3971.c @@ -45,7 +45,7 @@ static int lp3971_set_bits(struct lp3971 *lp3971, u8 reg, u16 mask, u16 val); LP3971_BUCK2 -> 4 LP3971_BUCK3 -> 6 */ -#define BUCK_VOL_CHANGE_SHIFT(x) (((1 << x) & ~0x01) << 1) +#define BUCK_VOL_CHANGE_SHIFT(x) (((!!x) << 2) | (x & ~0x01)) #define BUCK_VOL_CHANGE_FLAG_GO 0x01 #define BUCK_VOL_CHANGE_FLAG_TARGET 0x02 #define BUCK_VOL_CHANGE_FLAG_MASK 0x03 -- 1.5.4.3
| |