summaryrefslogtreecommitdiff
path: root/drivers/power/max17048_battery.c
diff options
context:
space:
mode:
authorKerwin Wan <kerwinw@nvidia.com>2012-08-14 17:31:11 +0800
committerVarun Wadekar <vwadekar@nvidia.com>2012-08-21 15:31:19 +0530
commitfeec5fd24aefbe14fdb2152d3df0216e21db174b (patch)
treef4067ee6f6628ed83c8db7313676d8da90bc9e55 /drivers/power/max17048_battery.c
parentaf4044860e3eb9afaec85bf7d4faf50f5f70786d (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.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;
}