[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160118021138.GA20498@dtor-ws>
Date: Sun, 17 Jan 2016 18:11:38 -0800
From: Dmitry Torokhov <dmitry.torokhov@...il.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Rob Herring <robh@...nel.org>,
Grant Likely <grant.likely@...aro.org>,
Linus Walleij <linus.walleij@...aro.org>,
Thierry Reding <treding@...dia.com>,
Uwe Kleine-König
<u.kleine-koenig@...gutronix.de>, linux-kernel@...r.kernel.org,
"Rafael J. Wysocki" <rafael@...nel.org>
Subject: [PATCH] driver-core: platform: automatically mark wakeup devices
When probing platform drivers let's check if corresponding devices have
"wakeup-source" property defined (either in device tree, ACPI, or static
platform properties) and automatically enable such devices as wakeup
sources for the system. This will help us standardize on the name for this
property and reduce amount of boilerplate code in the drivers.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@...il.com>
---
drivers/base/platform.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 1dd6d3b..d14071a 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -514,9 +514,14 @@ static int platform_drv_probe(struct device *_dev)
ret = dev_pm_domain_attach(_dev, true);
if (ret != -EPROBE_DEFER && drv->probe) {
+ bool wakeup = device_property_read_bool(_dev, "wakeup-source");
+
+ device_init_wakeup(_dev, wakeup);
ret = drv->probe(dev);
- if (ret)
+ if (ret) {
+ device_init_wakeup(_dev, false);
dev_pm_domain_detach(_dev, true);
+ }
}
if (drv->prevent_deferred_probe && ret == -EPROBE_DEFER) {
@@ -540,6 +545,8 @@ static int platform_drv_remove(struct device *_dev)
if (drv->remove)
ret = drv->remove(dev);
+
+ device_init_wakeup(_dev, false);
dev_pm_domain_detach(_dev, true);
return ret;
--
2.6.0.rc2.230.g3dd15c0
--
Dmitry
Powered by blists - more mailing lists