summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorKerwin Wan <kerwinw@nvidia.com>2012-08-14 17:31:11 +0800
committerSimone Willett <swillett@nvidia.com>2012-08-16 13:46:08 -0700
commit03d9e752a0c3df2031fd57d41e59f71eb6209789 (patch)
treecb845bd6619f62b56200698e130bd142f100edaf /drivers/power
parent2f4ab5b6a19c1380b0985f914c173af09b802dcf (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')
-rw-r--r--drivers/power/max17048_battery.c18
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;
}