power: android-battery: Battery health check only when connected to charger
authorHongMin Son <hongmin.son@samsung.com>
Thu, 11 Oct 2012 10:42:54 +0000 (19:42 +0900)
committerArve Hjønnevåg <arve@android.com>
Mon, 1 Jul 2013 21:16:11 +0000 (14:16 -0700)
Only check battery health when connected to a charger.

Change-Id: I43e3f73ac1e5862f8e6dbaa19daa6d322f3bba20
Signed-off-by: HongMin Son <hongmin.son@samsung.com>
drivers/power/android_battery.c

index 7befc14e3aa3aa69a23f5d9671ed1da273903971..a5b5f65e019c53169e981b4370b38d306e30de85 100644 (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;
+                       }
                }
        }