[PATCH] power: max17042: do not lose accuracy calculatingcurrent_now

From: Philip Rakity
Date: Sat Aug 13 2011 - 00:21:49 EST


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@xxxxxxxxxxx>
---
drivers/power/max17042_battery.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/power/max17042_battery.c b/drivers/power/max17042_battery.c
index 4245806..7b7762a 100644
--- a/drivers/power/max17042_battery.c
+++ b/drivers/power/max17042_battery.c
@@ -153,8 +153,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;
}
--
1.7.0.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/