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>,
Andres Salomon <dilinger@collabora.co.uk>,
Anton Vorontsov <cbou@mail.ru>, Daniel Mack <daniel@caiaq.de>,
David Woodhouse <dwmw2@infradead.org>
Subject: [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending
Date: Thu, 13 May 2010 21:11:13 -0700 [thread overview]
Message-ID: <1273810273-3039-9-git-send-email-arve@android.com> (raw)
In-Reply-To: <1273810273-3039-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..f6412c8 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.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
WARNING: multiple messages have this Message-ID (diff)
From: "Arve Hjønnevåg" <arve@android.com>
To: linux-pm@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
"Arve Hjønnevåg" <arve@android.com>,
"Anton Vorontsov" <cbou@mail.ru>,
"David Woodhouse" <dwmw2@infradead.org>,
"Daniel Mack" <daniel@caiaq.de>,
"Andres Salomon" <dilinger@collabora.co.uk>,
"Len Brown" <len.brown@intel.com>,
"Mark Brown" <broonie@opensource.wolfsonmicro.com>
Subject: [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending
Date: Thu, 13 May 2010 21:11:13 -0700 [thread overview]
Message-ID: <1273810273-3039-9-git-send-email-arve@android.com> (raw)
In-Reply-To: <1273810273-3039-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..f6412c8 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.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
next prev parent reply other threads:[~2010-05-14 4:11 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-14 4:11 [PATCH 0/8] Suspend block api (version 7) Arve Hjønnevåg
2010-05-14 4:11 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
2010-05-14 4:11 ` 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 ` 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 ` 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 ` Arve Hjønnevåg
2010-05-14 4:11 ` [PATCH 5/8] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2010-05-14 4:11 ` Arve Hjønnevåg
2010-05-14 4:11 ` [PATCH 6/8] PM: Add suspend blocking work Arve Hjønnevåg
2010-05-14 4:11 ` Arve Hjønnevåg
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 ` Arve Hjønnevåg
2010-05-14 4:11 ` Arve Hjønnevåg [this message]
2010-05-14 4:11 ` [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending Arve Hjønnevåg
2010-05-14 6:13 ` [PATCH 1/8] PM: Add suspend block api Paul Walmsley
2010-05-14 6:27 ` Paul Walmsley
2010-05-14 7:14 ` Arve Hjønnevåg
2010-05-18 2:17 ` Paul Walmsley
2010-05-18 3:06 ` Arve Hjønnevåg
2010-05-18 3:34 ` Paul Walmsley
2010-05-18 3:51 ` Arve Hjønnevåg
2010-05-19 15:55 ` Paul Walmsley
2010-05-20 0:35 ` Arve Hjønnevåg
2010-05-18 13:11 ` Pavel Machek
2010-05-18 13:11 ` Pavel Machek
2010-05-20 9:11 ` Florian Mickler
2010-05-20 9:26 ` Florian Mickler
2010-05-20 22:18 ` Rafael J. Wysocki
2010-05-20 22:18 ` Rafael J. Wysocki
2010-05-21 6:04 ` Florian Mickler
2010-05-21 6:04 ` Florian Mickler
2010-05-27 15:41 ` Pavel Machek
2010-05-27 15:41 ` Pavel Machek
2010-05-20 9:26 ` Florian Mickler
2010-05-20 9:11 ` Florian Mickler
2010-05-14 21:08 ` [PATCH 0/8] Suspend block api (version 7) Rafael J. Wysocki
2010-05-17 4:50 ` Arve Hjønnevåg
2010-05-17 19:01 ` Mike Snitzer
2010-05-17 19:01 ` Mike Snitzer
2010-05-17 21:42 ` Rafael J. Wysocki
2010-05-17 21:42 ` Rafael J. Wysocki
2010-05-17 22:16 ` Kevin Hilman
2010-05-17 22:16 ` Kevin Hilman
2010-05-18 0:52 ` Arve Hjønnevåg
2010-05-18 0:52 ` Arve Hjønnevåg
2010-05-18 16:18 ` Kevin Hilman
2010-05-18 16:18 ` Kevin Hilman
2010-05-18 18:52 ` Rafael J. Wysocki
2010-05-18 18:52 ` Rafael J. Wysocki
2010-05-18 22:04 ` Kevin Hilman
2010-05-18 22:04 ` Kevin Hilman
2010-05-18 22:29 ` Rafael J. Wysocki
2010-05-18 22:29 ` Rafael J. Wysocki
2010-05-19 0:00 ` Arve Hjønnevåg
2010-05-19 0:00 ` Arve Hjønnevåg
2010-05-18 16:18 ` Kevin Hilman
2010-05-18 19:13 ` Rafael J. Wysocki
2010-05-18 19:13 ` Rafael J. Wysocki
2010-05-18 20:47 ` Arve Hjønnevåg
2010-05-18 21:48 ` Rafael J. Wysocki
2010-05-18 22:03 ` Arve Hjønnevåg
2010-05-18 22:03 ` Arve Hjønnevåg
2010-05-18 22:34 ` Rafael J. Wysocki
2010-05-18 22:52 ` Arve Hjønnevåg
2010-05-18 22:52 ` Arve Hjønnevåg
2010-05-18 23:19 ` Rafael J. Wysocki
2010-05-18 23:19 ` Rafael J. Wysocki
2010-05-18 23:42 ` Arve Hjønnevåg
2010-05-19 20:39 ` Rafael J. Wysocki
2010-05-19 20:39 ` Rafael J. Wysocki
2010-05-19 21:34 ` Arve Hjønnevåg
2010-05-20 22:21 ` Rafael J. Wysocki
2010-05-20 22:21 ` Rafael J. Wysocki
2010-05-19 21:34 ` Arve Hjønnevåg
2010-05-18 23:42 ` Arve Hjønnevåg
2010-05-18 22:34 ` Rafael J. Wysocki
2010-05-18 21:48 ` Rafael J. Wysocki
2010-05-18 20:47 ` Arve Hjønnevåg
2010-05-17 4:50 ` Arve Hjønnevåg
2010-05-14 21:08 ` Rafael J. Wysocki
2010-05-16 19:42 ` Rafael J. Wysocki
2010-05-16 19:42 ` Rafael J. Wysocki
2010-05-17 4:16 ` Arve Hjønnevåg
2010-05-17 20:40 ` Rafael J. Wysocki
2010-05-17 20:51 ` Brian Swetland
2010-05-17 20:51 ` Brian Swetland
2010-05-17 21:44 ` Rafael J. Wysocki
2010-05-17 23:32 ` Arve Hjønnevåg
2010-05-18 19:38 ` Rafael J. Wysocki
2010-05-18 20:35 ` Arve Hjønnevåg
2010-05-18 20:35 ` Arve Hjønnevåg
2010-05-18 21:14 ` Rafael J. Wysocki
2010-05-18 21:14 ` Rafael J. Wysocki
2010-05-18 22:21 ` Arve Hjønnevåg
2010-05-18 22:56 ` Rafael J. Wysocki
2010-05-18 22:56 ` Rafael J. Wysocki
2010-05-18 23:06 ` Arve Hjønnevåg
2010-05-18 23:06 ` Arve Hjønnevåg
2010-05-19 20:40 ` Rafael J. Wysocki
2010-05-19 20:40 ` Rafael J. Wysocki
2010-05-18 22:21 ` Arve Hjønnevåg
2010-05-18 19:38 ` Rafael J. Wysocki
2010-05-17 23:32 ` Arve Hjønnevåg
2010-05-17 21:44 ` Rafael J. Wysocki
2010-05-17 20:40 ` Rafael J. Wysocki
2010-05-17 4:16 ` Arve Hjønnevåg
-- strict thread matches above, loose matches on Subject: below --
2010-05-21 22:46 [PATCH 0/8] Suspend block api (version 8) Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 1/8] PM: Opportunistic suspend support Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 4/8] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 5/8] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 6/8] PM: Add suspend blocking work Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 7/8] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending Arve Hjønnevåg
2010-05-21 22:46 ` Arve Hjønnevåg
2010-04-30 22:36 [PATCH 0/8] Suspend block api (version 6) Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
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
2010-04-30 22:37 ` [PATCH 7/8] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2010-04-30 22:37 ` [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending Arve Hjønnevåg
2010-04-30 22:37 ` Arve Hjønnevåg
2010-04-28 4:31 [PATCH 0/9] Suspend block api (version 5) Arve Hjønnevåg
2010-04-28 4:31 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
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 ` [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending Arve Hjønnevåg
2010-04-28 4:31 ` 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=1273810273-3039-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 \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.