ab8500-chargalg: Update battery health on safety timer exp
authorLee Jones <lee.jones@linaro.org>
Thu, 17 Jan 2013 13:49:45 +0000 (13:49 +0000)
committerLee Jones <lee.jones@linaro.org>
Wed, 23 Jan 2013 11:33:05 +0000 (11:33 +0000)
When the charging safety timer elapses, the battery health is
shown as "Good". This is misleading and also makes it difficult
to distinguish issues relating to discharging despite the fact
that the charger is still connected.

When in actual fact a safety timer elapse is an indication of a
fault in the battery. Here we make this clearer by reporting
POWER_SUPPLY_HEALTH_UNSPEC_FAILURE instead.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/power/abx500_chargalg.c

index 830b2dd7ac6d135dceebcba6aa080b34a0cc4851..2463fa01d63f078655fa773d9ed9e61cad68bbde 100644 (file)
@@ -1628,6 +1628,9 @@ static int abx500_chargalg_get_property(struct power_supply *psy,
                                val->intval = POWER_SUPPLY_HEALTH_COLD;
                        else
                                val->intval = POWER_SUPPLY_HEALTH_OVERHEAT;
+               } else if (di->charge_state == STATE_SAFETY_TIMER_EXPIRED ||
+                          di->charge_state == STATE_SAFETY_TIMER_EXPIRED_INIT) {
+                       val->intval = POWER_SUPPLY_HEALTH_UNSPEC_FAILURE;
                } else {
                        val->intval = POWER_SUPPLY_HEALTH_GOOD;
                }