From: HongMin Son Date: Thu, 11 Oct 2012 10:42:54 +0000 (+0900) Subject: power: android-battery: Battery health check only when connected to charger X-Git-Tag: firefly_0821_release~4090^2~651 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f43a4faa0e2a37748a395d395c844be734f56093;p=firefly-linux-kernel-4.4.55.git power: android-battery: Battery health check only when connected to charger Only check battery health when connected to a charger. Change-Id: I43e3f73ac1e5862f8e6dbaa19daa6d322f3bba20 Signed-off-by: HongMin Son --- diff --git a/drivers/power/android_battery.c b/drivers/power/android_battery.c index 7befc14e3aa3..a5b5f65e019c 100644 --- a/drivers/power/android_battery.c +++ b/drivers/power/android_battery.c @@ -201,28 +201,39 @@ static void android_bat_get_temp(struct android_bat_data *battery) if (battery->pdata->get_temperature) battery->pdata->get_temperature(&batt_temp); - if (batt_temp >= battery->pdata->temp_high_threshold) { - if (health != POWER_SUPPLY_HEALTH_OVERHEAT && + if (battery->charge_source != CHARGE_SOURCE_NONE) { + if (batt_temp >= battery->pdata->temp_high_threshold) { + if (health != POWER_SUPPLY_HEALTH_OVERHEAT && health != POWER_SUPPLY_HEALTH_UNSPEC_FAILURE) { - pr_info("battery overheat (%d>=%d), charging unavailable\n", - batt_temp, battery->pdata->temp_high_threshold); - battery->batt_health = POWER_SUPPLY_HEALTH_OVERHEAT; - } - } else if (batt_temp <= battery->pdata->temp_high_recovery && + pr_info("battery overheat (%d>=%d), " \ + "charging unavailable\n", + batt_temp, + battery->pdata->temp_high_threshold); + battery->batt_health = + POWER_SUPPLY_HEALTH_OVERHEAT; + } + } else if (batt_temp <= battery->pdata->temp_high_recovery && batt_temp >= battery->pdata->temp_low_recovery) { - if (health == POWER_SUPPLY_HEALTH_OVERHEAT || + if (health == POWER_SUPPLY_HEALTH_OVERHEAT || health == POWER_SUPPLY_HEALTH_COLD) { - pr_info("battery recovery (%d,%d~%d), charging available\n", - batt_temp, battery->pdata->temp_low_recovery, - battery->pdata->temp_high_recovery); - battery->batt_health = POWER_SUPPLY_HEALTH_GOOD; - } - } else if (batt_temp <= battery->pdata->temp_low_threshold) { - if (health != POWER_SUPPLY_HEALTH_COLD && + pr_info("battery recovery (%d,%d~%d)," \ + "charging available\n", + batt_temp, + battery->pdata->temp_low_recovery, + battery->pdata->temp_high_recovery); + battery->batt_health = + POWER_SUPPLY_HEALTH_GOOD; + } + } else if (batt_temp <= battery->pdata->temp_low_threshold) { + if (health != POWER_SUPPLY_HEALTH_COLD && health != POWER_SUPPLY_HEALTH_UNSPEC_FAILURE) { - pr_info("battery cold (%d <= %d), charging unavailable\n", - batt_temp, battery->pdata->temp_low_threshold); - battery->batt_health = POWER_SUPPLY_HEALTH_COLD; + pr_info("battery cold (%d <= %d)," \ + "charging unavailable\n", + batt_temp, + battery->pdata->temp_low_threshold); + battery->batt_health = + POWER_SUPPLY_HEALTH_COLD; + } } }