summaryrefslogtreecommitdiffstats
path: root/drivers/power/ds2760_battery.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-13 01:29:17 +0100
committerIngo Molnar <mingo@elte.hu>2009-03-13 01:29:17 +0100
commit3c1f67d60e2b4f4455563928999fd41cc653645d (patch)
tree0d58c145a05fb09167f1ab6882b474eccb1f3563 /drivers/power/ds2760_battery.c
parent03d78913f01e8f6599823f00357ed17b32747d3d (diff)
parent9ead64974b05501bbac0d63a47c99fa786d064ba (diff)
downloadop-kernel-dev-3c1f67d60e2b4f4455563928999fd41cc653645d.zip
op-kernel-dev-3c1f67d60e2b4f4455563928999fd41cc653645d.tar.gz
Merge branch 'linus' into core/locking
Diffstat (limited to 'drivers/power/ds2760_battery.c')
-rw-r--r--drivers/power/ds2760_battery.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/power/ds2760_battery.c b/drivers/power/ds2760_battery.c
index 1d76892..a52d4a1 100644
--- a/drivers/power/ds2760_battery.c
+++ b/drivers/power/ds2760_battery.c
@@ -180,10 +180,13 @@ static int ds2760_battery_read_status(struct ds2760_device_info *di)
di->empty_uAh = battery_interpolate(scale, di->temp_C / 10);
di->empty_uAh *= 1000; /* convert to µAh */
- /* From Maxim Application Note 131: remaining capacity =
- * ((ICA - Empty Value) / (Full Value - Empty Value)) x 100% */
- di->rem_capacity = ((di->accum_current_uAh - di->empty_uAh) * 100L) /
- (di->full_active_uAh - di->empty_uAh);
+ if (di->full_active_uAh == di->empty_uAh)
+ di->rem_capacity = 0;
+ else
+ /* From Maxim Application Note 131: remaining capacity =
+ * ((ICA - Empty Value) / (Full Value - Empty Value)) x 100% */
+ di->rem_capacity = ((di->accum_current_uAh - di->empty_uAh) * 100L) /
+ (di->full_active_uAh - di->empty_uAh);
if (di->rem_capacity < 0)
di->rem_capacity = 0;
OpenPOWER on IntegriCloud