[PATCH 7/10 v6] PM / Domains: Don't stop wakeup devices during system sleep transitions

Rafael J. Wysocki
2011-06-25T21:29:24Z

From: Rafael J. Wysocki <rjw@sisk.pl>

Devices that are set up to wake up the system from sleep states
should not be stopped and power should not be removed from them
when the system goes into a sleep state. Make the generic PM domain
code respect that limitation.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
drivers/base/power/domain.c | 6 ++++++
1 file changed, 6 insertions(+)

Index: linux-2.6/drivers/base/power/domain.c
=================================--- linux-2.6.orig/drivers/base/power/domain.c
+++ linux-2.6/drivers/base/power/domain.c
@@ -445,6 +445,9 @@ static int pm_genpd_suspend_noirq(struct
if (ret)
return ret;

+ if (device_may_wakeup(dev))
+ return 0;
+
if (genpd->stop_device)
genpd->stop_device(dev);

@@ -665,6 +668,9 @@ static int pm_genpd_dev_poweroff_noirq(s
if (ret)
return ret;

+ if (device_may_wakeup(dev))
+ return 0;
+
if (genpd->stop_device)
genpd->stop_device(dev);