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 <hongmin.son@samsung.com>
This commit is contained in:
HongMin Son
2012-10-11 19:42:54 +09:00
committed by Colin Cross
parent 675e02ceb8
commit 1a4b0fca6e

View File

@@ -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;
}
}
}