diff options
author | Kerwin Wan <kerwinw@nvidia.com> | 2012-08-14 17:31:11 +0800 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2012-08-21 15:31:19 +0530 |
commit | feec5fd24aefbe14fdb2152d3df0216e21db174b (patch) | |
tree | f4067ee6f6628ed83c8db7313676d8da90bc9e55 /drivers/power/max17048_battery.c | |
parent | af4044860e3eb9afaec85bf7d4faf50f5f70786d (diff) |
power: max17048: update charge status when resume
bug 1033234
Change-Id: I67a28113fbf0a2461886658322f9106d17a69f23
Signed-off-by: Kerwin Wan <kerwinw@nvidia.com>
Reviewed-on: http://git-master/r/123301
Reviewed-by: Chandler Zhang <chazhang@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Diffstat (limited to 'drivers/power/max17048_battery.c')
-rw-r--r-- | drivers/power/max17048_battery.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/power/max17048_battery.c b/drivers/power/max17048_battery.c index 770d5bc64c0b..ba3d6440ab3d 100644 --- a/drivers/power/max17048_battery.c +++ b/drivers/power/max17048_battery.c @@ -221,10 +221,11 @@ static void max17048_work(struct work_struct *work) if (chip->vcell != chip->lasttime_vcell || chip->soc != chip->lasttime_soc || - chip->status != chip->lasttime_status) { + chip->status != chip->lasttime_status) { chip->lasttime_vcell = chip->vcell; chip->lasttime_soc = chip->soc; + chip->lasttime_status = chip->status; power_supply_changed(&chip->battery); } @@ -239,14 +240,13 @@ static void max17048_battery_status(enum charging_states status, chip->ac_online = 0; chip->usb_online = 0; - if (chrg_type == AC) - chip->ac_online = 1; - else if (chrg_type == USB) - chip->usb_online = 1; - - if (status == progress) + if (status == progress) { chip->status = POWER_SUPPLY_STATUS_CHARGING; - else + if (chrg_type == AC) + chip->ac_online = 1; + else if (chrg_type == USB) + chip->usb_online = 1; + } else chip->status = POWER_SUPPLY_STATUS_DISCHARGING; @@ -592,6 +592,8 @@ static int max17048_resume(struct i2c_client *client) return ret; } + update_charger_status(); + schedule_work(&chip->work); return 0; } |