From a81e7206ec5592375f7d0effc2853a47dd0ee509 Mon Sep 17 00:00:00 2001 From: Harry Yang Date: Tue, 12 Jul 2016 16:51:47 -0700 Subject: [PATCH] qcom-charger: smb-lib: fix battery health status Battery health shows 'good' in the ranges of both cold and overheat temperatures. This change fixes a bug in its get_prop function. CRs-Fixed: 1040848 Change-Id: If6e6f60170cfb4769456de4c4428831a29489da2 Signed-off-by: Harry Yang --- drivers/power/qcom-charger/smb-lib.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/drivers/power/qcom-charger/smb-lib.c b/drivers/power/qcom-charger/smb-lib.c index 0465bfac296d..a7bda329cadd 100644 --- a/drivers/power/qcom-charger/smb-lib.c +++ b/drivers/power/qcom-charger/smb-lib.c @@ -783,22 +783,16 @@ int smblib_get_prop_batt_health(struct smb_charger *chg, goto done; } - switch (stat & BAT_TEMP_STATUS_MASK) { - case BAT_TEMP_STATUS_TOO_COLD_BIT: + if (stat & BAT_TEMP_STATUS_TOO_COLD_BIT) val->intval = POWER_SUPPLY_HEALTH_COLD; - break; - case BAT_TEMP_STATUS_TOO_HOT_BIT: + else if (stat & BAT_TEMP_STATUS_TOO_HOT_BIT) val->intval = POWER_SUPPLY_HEALTH_OVERHEAT; - break; - case BAT_TEMP_STATUS_COLD_SOFT_LIMIT_BIT: + else if (stat & BAT_TEMP_STATUS_COLD_SOFT_LIMIT_BIT) val->intval = POWER_SUPPLY_HEALTH_COOL; - break; - case BAT_TEMP_STATUS_HOT_SOFT_LIMIT_BIT: + else if (stat & BAT_TEMP_STATUS_HOT_SOFT_LIMIT_BIT) val->intval = POWER_SUPPLY_HEALTH_WARM; - break; - default: + else val->intval = POWER_SUPPLY_HEALTH_GOOD; - } done: return rc;