summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPhilip Rakity <prakity@marvell.com>2011-08-13 06:19:57 +0200
committerAnton Vorontsov <cbouatmailru@gmail.com>2011-08-19 19:03:34 +0200
commit91d8b0d6f81d2946962ee559090a34834dfd467b (patch)
tree3cbfca6e1eca3b857976116c4c96f54e2e62a6a5 /drivers
parentmax17042_battery: Divide by 0 crash because r_sns init too late (diff)
downloadlinux-91d8b0d6f81d2946962ee559090a34834dfd467b.tar.xz
linux-91d8b0d6f81d2946962ee559090a34834dfd467b.zip
max17042_battery: Do not lose accuracy calculating current_now
PROP_CURRENT_NOW value is first divided then multiplied up causing a lose of accuracy. Use the same method as PROP_CURRENT_AVG to do the calculation. Signed-off-by: Philip Rakity <prakity@marvell.com> Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/power/max17042_battery.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/power/max17042_battery.c b/drivers/power/max17042_battery.c
index 462845025ca1..61fb6d7dfe7a 100644
--- a/drivers/power/max17042_battery.c
+++ b/drivers/power/max17042_battery.c
@@ -152,8 +152,7 @@ static int max17042_get_property(struct power_supply *psy,
val->intval++;
val->intval *= -1;
}
- val->intval >>= 4;
- val->intval *= 1000000 * 25 / chip->pdata->r_sns;
+ val->intval *= 1562500 / chip->pdata->r_sns;
} else {
return -EINVAL;
}