2014-10-04 09:40:36

by Daniel Glöckner

[permalink] [raw]
Subject: [PATCH] rtc-cmos: fix wakeup from S5 without CONFIG_PM_SLEEP

b5ada4600d broke wakeup from S5 by making cmos_poweroff a nop
unless CONFIG_PM_SLEEP was defined. Fix this by restricting
the #ifdef to cmos_resume and restoring the old dependency on
CONFIG_PM for cmos_suspend and cmos_poweroff.

Signed-off-by: Daniel Glöckner <[email protected]>
---
drivers/rtc/rtc-cmos.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index b0e4a3e..5b2e761 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -856,7 +856,7 @@ static void __exit cmos_do_remove(struct device *dev)
cmos->dev = NULL;
}

-#ifdef CONFIG_PM_SLEEP
+#ifdef CONFIG_PM

static int cmos_suspend(struct device *dev)
{
@@ -907,6 +907,8 @@ static inline int cmos_poweroff(struct device *dev)
return cmos_suspend(dev);
}

+#ifdef CONFIG_PM_SLEEP
+
static int cmos_resume(struct device *dev)
{
struct cmos_rtc *cmos = dev_get_drvdata(dev);
@@ -954,6 +956,7 @@ static int cmos_resume(struct device *dev)
return 0;
}

+#endif
#else

static inline int cmos_poweroff(struct device *dev)
--
1.8.3.4