Browse Source

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>
Philip Rakity 14 years ago
parent
commit
91d8b0d6f8
1 changed files with 1 additions and 2 deletions
  1. 1 2
      drivers/power/max17042_battery.c

+ 1 - 2
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;
 		}