summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorHongMin Son <hongmin.son@samsung.com>2012-10-05 13:22:31 +0900
committerNitin Garg <nitin.garg@freescale.com>2014-04-21 22:35:03 -0500
commit506409472a36f5d882280240f6ac2731328ecd78 (patch)
tree382a55cc5a36a4968629745e20c6560381940628 /drivers/power
parent1e11515ba3bf90cac6e5cbab5eaedf239ffae4c1 (diff)
power: android-battery: Fix battery alarm timer not modified at suspend
- Alarm Timer driver is suspended before battery driver, so alarm timer was not changed to slow poll speed at suspend. Use PM notifiers instead. - If charger is connected, keep 1 min alarm timer. Signed-off-by: HongMin Son <hongmin.son@samsung.com> Signed-off-by: Todd Poynor <toddpoynor@google.com> Change-Id: Id0f3bda5d0749fd90f1964073bc30c1a73fc317f
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/android_battery.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/power/android_battery.c b/drivers/power/android_battery.c
index d7682d69e3ab..5001bba28f91 100644
--- a/drivers/power/android_battery.c
+++ b/drivers/power/android_battery.c
@@ -700,21 +700,24 @@ static int android_bat_suspend(struct device *dev)
struct android_bat_data *battery = dev_get_drvdata(dev);
cancel_work_sync(&battery->monitor_work);
- android_bat_monitor_set_alarm(battery, SLOW_POLL);
+ android_bat_monitor_set_alarm(
+ battery,
+ battery->charge_source == CHARGE_SOURCE_NONE ?
+ SLOW_POLL : FAST_POLL);
return 0;
}
-static int android_bat_resume(struct device *dev)
+static void android_bat_resume(struct device *dev)
{
struct android_bat_data *battery = dev_get_drvdata(dev);
android_bat_monitor_set_alarm(battery, FAST_POLL);
- return 0;
+ return;
}
static const struct dev_pm_ops android_bat_pm_ops = {
- .suspend = android_bat_suspend,
- .resume = android_bat_resume,
+ .prepare = android_bat_suspend,
+ .complete = android_bat_resume,
};
static struct platform_driver android_bat_driver = {