diff options
author | hongmin.son <hongmin.son@samsung.com> | 2010-10-25 14:32:51 -0700 |
---|---|---|
committer | Arve Hjønnevåg <arve@android.com> | 2011-11-17 17:49:51 -0800 |
commit | 1470338527452eb5ab85e7a7182b680a68694808 (patch) | |
tree | fb5179b7a5f4eb79aa2bc36f09e367a2074f2e65 /drivers/power | |
parent | b6f39e4f3230784d3492f49709729122cb07d39b (diff) | |
download | kernel_samsung_aries-1470338527452eb5ab85e7a7182b680a68694808.zip kernel_samsung_aries-1470338527452eb5ab85e7a7182b680a68694808.tar.gz kernel_samsung_aries-1470338527452eb5ab85e7a7182b680a68694808.tar.bz2 |
S5PC11X: BATTERY:Change next finish time if charging is ended by timeover.
Change next finish time to 1h30m if charging is ended by timeover.
Change-Id: I7e69636425d2a963f98bb80545a4779049f417c4
Signed-off-by: hongmin.son <hongmin.son@samsung.com>
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/s5pc110_battery.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/power/s5pc110_battery.c b/drivers/power/s5pc110_battery.c index b42aeb5..7a47239 100644 --- a/drivers/power/s5pc110_battery.c +++ b/drivers/power/s5pc110_battery.c @@ -117,6 +117,7 @@ struct chg_data { enum cable_type_t cable_status; bool charging; + bool set_charge_timeout; int present; int timestamp; int set_batt_full; @@ -400,8 +401,10 @@ static void s3c_bat_discharge_reason(struct chg_data *chg) cur_time = ktime_to_timespec(ktime); if (chg->discharging_time && - cur_time.tv_sec > chg->discharging_time) + cur_time.tv_sec > chg->discharging_time) { + chg->set_charge_timeout = true; chg->bat_info.dis_reason |= DISCONNECT_OVER_TIME; + } pr_debug("%s : Current Voltage : %d\n \ Current time : %ld discharging_time : %ld\n \ @@ -515,7 +518,8 @@ static int s3c_cable_status_update(struct chg_data *chg) ktime = alarm_get_elapsed_realtime(); cur_time = ktime_to_timespec(ktime); chg->discharging_time = - chg->bat_info.batt_is_full ? + chg->bat_info.batt_is_full || + chg->set_charge_timeout ? cur_time.tv_sec + TOTAL_RECHARGING_TIME : cur_time.tv_sec + TOTAL_CHARGING_TIME; } @@ -543,6 +547,7 @@ static int s3c_cable_status_update(struct chg_data *chg) chg->bat_info.charging_status = POWER_SUPPLY_STATUS_DISCHARGING; chg->bat_info.batt_is_full = false; + chg->set_charge_timeout = false; chg->set_batt_full = 0; chg->bat_info.dis_reason = 0; chg->discharging_time = 0; @@ -692,6 +697,7 @@ static __devinit int max8998_charger_probe(struct platform_device *pdev) chg->polling_interval = POLLING_INTERVAL; chg->bat_info.batt_health = POWER_SUPPLY_HEALTH_GOOD; chg->bat_info.batt_is_full = false; + chg->set_charge_timeout = false; chg->cable_status = CABLE_TYPE_NONE; |