From: "Arve Hjønnevåg" <arve@android.com>
To: linux-pm@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Cc: Len Brown <len.brown@intel.com>,
Mark Brown <broonie@opensource.wolfsonmicro.com>,
Oleg Nesterov <oleg@redhat.com>,
Andres Salomon <dilinger@collabora.co.uk>,
Anton Vorontsov <cbou@mail.ru>, Daniel Mack <daniel@caiaq.de>,
Tejun Heo <tj@kernel.org>, David Woodhouse <dwmw2@infradead.org>
Subject: [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending
Date: Tue, 27 Apr 2010 21:31:59 -0700 [thread overview]
Message-ID: <1272429119-12103-9-git-send-email-arve@android.com> (raw)
In-Reply-To: <1272429119-12103-8-git-send-email-arve@android.com>
When connecting usb or the charger the device would often go back to sleep
before the charge led and screen turned on.
Signed-off-by: Arve Hjønnevåg <arve@android.com>
---
drivers/power/power_supply_core.c | 9 ++++++---
include/linux/power_supply.h | 3 ++-
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
index cce75b4..577a131 100644
--- a/drivers/power/power_supply_core.c
+++ b/drivers/power/power_supply_core.c
@@ -39,7 +39,7 @@ static int __power_supply_changed_work(struct device *dev, void *data)
static void power_supply_changed_work(struct work_struct *work)
{
struct power_supply *psy = container_of(work, struct power_supply,
- changed_work);
+ changed_work.work);
dev_dbg(psy->dev, "%s\n", __func__);
@@ -55,7 +55,7 @@ void power_supply_changed(struct power_supply *psy)
{
dev_dbg(psy->dev, "%s\n", __func__);
- schedule_work(&psy->changed_work);
+ schedule_suspend_blocking_work(&psy->changed_work);
}
EXPORT_SYMBOL_GPL(power_supply_changed);
@@ -155,7 +155,8 @@ int power_supply_register(struct device *parent, struct power_supply *psy)
goto dev_create_failed;
}
- INIT_WORK(&psy->changed_work, power_supply_changed_work);
+ suspend_blocking_work_init(&psy->changed_work,
+ power_supply_changed_work, "power-supply");
rc = power_supply_create_attrs(psy);
if (rc)
@@ -172,6 +173,7 @@ int power_supply_register(struct device *parent, struct power_supply *psy)
create_triggers_failed:
power_supply_remove_attrs(psy);
create_attrs_failed:
+ suspend_blocking_work_destroy(&psy->changed_work);
device_unregister(psy->dev);
dev_create_failed:
success:
@@ -184,6 +186,7 @@ void power_supply_unregister(struct power_supply *psy)
flush_scheduled_work();
power_supply_remove_triggers(psy);
power_supply_remove_attrs(psy);
+ suspend_blocking_work_destroy(&psy->changed_work);
device_unregister(psy->dev);
}
EXPORT_SYMBOL_GPL(power_supply_unregister);
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index ebd2b8f..8a12d50 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -14,6 +14,7 @@
#define __LINUX_POWER_SUPPLY_H__
#include <linux/device.h>
+#include <linux/suspend_blocker.h>
#include <linux/workqueue.h>
#include <linux/leds.h>
@@ -152,7 +153,7 @@ struct power_supply {
/* private */
struct device *dev;
- struct work_struct changed_work;
+ struct suspend_blocking_work changed_work;
#ifdef CONFIG_LEDS_TRIGGERS
struct led_trigger *charging_full_trig;
--
1.6.5.1
_______________________________________________
linux-pm mailing list
linux-pm@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/linux-pm
next prev parent reply other threads:[~2010-04-28 4:31 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1272429119-12103-1-git-send-email-arve@android.com>
2010-04-28 4:31 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
[not found] ` <1272429119-12103-2-git-send-email-arve@android.com>
2010-04-28 4:31 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2010-04-28 4:31 ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2010-04-28 4:31 ` [PATCH 4/8] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2010-04-28 4:31 ` [PATCH 5/8] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2010-04-28 4:31 ` [PATCH 6/8] PM: Add suspend blocking work Arve Hjønnevåg
2010-04-28 4:31 ` [PATCH 7/8] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2010-04-28 4:31 ` Arve Hjønnevåg [this message]
2010-04-28 6:06 ` [PATCH 6/8] PM: Add suspend blocking work Pavel Machek
2010-04-28 6:44 ` Tejun Heo
2010-04-28 7:02 ` Arve Hjønnevåg
[not found] ` <i2vd6200be21004280002tde778c02h1586b4c06de2a89a@mail.gmail.com>
2010-04-28 7:18 ` Tejun Heo
2010-04-28 19:40 ` Oleg Nesterov
[not found] ` <20100428194028.GA16389@redhat.com>
2010-04-28 20:22 ` Tejun Heo
2010-04-28 21:08 ` Rafael J. Wysocki
2010-04-29 18:58 ` Oleg Nesterov
2010-04-29 19:44 ` [PATCH 0/2] workqueue fixlets (Was: PM: Add suspend blocking work.) Oleg Nesterov
2010-04-29 19:45 ` [PATCH 1/2] workqueues: flush_delayed_work: keep the original workqueue for re-queueing Oleg Nesterov
2010-04-30 5:15 ` Tejun Heo
2010-04-29 19:45 ` [PATCH 2/2] workqueues: export keventd_wq Oleg Nesterov
2010-04-30 5:16 ` Tejun Heo
2010-04-30 5:39 ` Arve Hjønnevåg
2010-04-30 5:52 ` Tejun Heo
2010-04-30 18:05 ` Oleg Nesterov
2010-04-30 18:11 ` Tejun Heo
2010-04-29 21:08 ` [PATCH 6/8] PM: Add suspend blocking work Rafael J. Wysocki
2010-04-28 21:09 ` Rafael J. Wysocki
2010-04-28 22:09 ` Arve Hjønnevåg
[not found] ` <x2id6200be21004281509j84c29664m60068e7bfc86f64f@mail.gmail.com>
2010-04-28 22:19 ` Rafael J. Wysocki
[not found] ` <201004290019.26381.rjw@sisk.pl>
2010-04-29 3:47 ` Arve Hjønnevåg
[not found] ` <s2rd6200be21004282047qc1b88ac5h1759f22f3c16ce85@mail.gmail.com>
2010-04-29 21:09 ` Rafael J. Wysocki
2010-04-28 5:07 ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Pavel Machek
2010-04-28 20:58 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Rafael J. Wysocki
[not found] ` <201004282258.51354.rjw@sisk.pl>
2010-04-28 22:31 ` Arve Hjønnevåg
[not found] ` <k2gd6200be21004281531y270549d7g8383f2c8a55038d4@mail.gmail.com>
2010-04-28 23:05 ` Rafael J. Wysocki
[not found] ` <201004290105.15707.rjw@sisk.pl>
2010-04-28 23:38 ` Arve Hjønnevåg
[not found] ` <h2jd6200be21004281638y6b751abesfcf6416707e6fee4@mail.gmail.com>
2010-04-29 21:11 ` Rafael J. Wysocki
2010-04-29 23:41 ` Arve Hjønnevåg
2010-04-28 6:07 ` [PATCH 1/8] PM: Add suspend block api Pavel Machek
2010-04-28 19:13 ` Alan Stern
2010-04-28 20:50 ` Rafael J. Wysocki
[not found] ` <201004282250.44200.rjw@sisk.pl>
2010-04-29 3:37 ` Arve Hjønnevåg
[not found] ` <l2yd6200be21004282037rc063266by91db7f732ceaa529@mail.gmail.com>
2010-04-29 21:16 ` Rafael J. Wysocki
2010-04-30 4:24 ` Tejun Heo
2010-04-30 17:26 ` Oleg Nesterov
[not found] ` <20100430172618.GA9043@redhat.com>
2010-05-20 8:30 ` Tejun Heo
[not found] ` <4BF4F31D.8070900@kernel.org>
2010-05-20 22:27 ` Rafael J. Wysocki
[not found] ` <201005210027.31910.rjw@sisk.pl>
2010-05-21 6:35 ` Tejun Heo
2010-05-06 15:18 ` Alan Stern
[not found] <1272667021-21312-1-git-send-email-arve@android.com>
[not found] ` <1272667021-21312-2-git-send-email-arve@android.com>
2010-04-30 22:36 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 4/8] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 5/8] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 6/8] PM: Add suspend blocking work Arve Hjønnevåg
[not found] ` <1272667021-21312-8-git-send-email-arve@android.com>
2010-04-30 22:37 ` [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending Arve Hjønnevåg
[not found] <1273810273-3039-1-git-send-email-arve@android.com>
2010-05-14 4:11 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
2010-05-14 4:11 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2010-05-14 4:11 ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2010-05-14 4:11 ` [PATCH 4/8] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2010-05-14 4:11 ` [PATCH 5/8] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
[not found] ` <1273810273-3039-7-git-send-email-arve@android.com>
2010-05-14 4:11 ` [PATCH 7/8] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2010-05-14 4:11 ` [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending Arve Hjønnevåg
[not found] <1274482015-30899-1-git-send-email-arve@android.com>
[not found] ` <1274482015-30899-2-git-send-email-arve@android.com>
[not found] ` <1274482015-30899-3-git-send-email-arve@android.com>
[not found] ` <1274482015-30899-4-git-send-email-arve@android.com>
[not found] ` <1274482015-30899-5-git-send-email-arve@android.com>
[not found] ` <1274482015-30899-6-git-send-email-arve@android.com>
[not found] ` <1274482015-30899-7-git-send-email-arve@android.com>
[not found] ` <1274482015-30899-8-git-send-email-arve@android.com>
2010-05-21 22:46 ` Arve Hjønnevåg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1272429119-12103-9-git-send-email-arve@android.com \
--to=arve@android.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=cbou@mail.ru \
--cc=daniel@caiaq.de \
--cc=dilinger@collabora.co.uk \
--cc=dwmw2@infradead.org \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=oleg@redhat.com \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox