Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6bc54e69921a64e8f813de658aef645c960a2904
Commit:     6bc54e69921a64e8f813de658aef645c960a2904
Parent:     4ae7806f8b4bf9a1e74c82f3bd4e91d59bd3d697
Author:     Russell King <[EMAIL PROTECTED]>
AuthorDate: Mon Nov 12 22:49:58 2007 +0000
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Sat Jan 26 15:07:51 2008 +0000

    [ARM] pxa/sa1100: replace wakeup support
    
    Replace wakeup support using the alarm via the SA1100 RTC driver on
    SA1100 and PXA platforms.  This allows RTC alarm wakeup to be enabled
    via sysfs using the conventional attributes.
    
    Acked-by: Alessandro Zummo <[EMAIL PROTECTED]>
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 drivers/rtc/rtc-sa1100.c |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
index 6f1e9a9..2eb3852 100644
--- a/drivers/rtc/rtc-sa1100.c
+++ b/drivers/rtc/rtc-sa1100.c
@@ -337,6 +337,8 @@ static int sa1100_rtc_probe(struct platform_device *pdev)
        if (IS_ERR(rtc))
                return PTR_ERR(rtc);
 
+       device_init_wakeup(&pdev->dev, 1);
+
        platform_set_drvdata(pdev, rtc);
 
        return 0;
@@ -352,9 +354,38 @@ static int sa1100_rtc_remove(struct platform_device *pdev)
        return 0;
 }
 
+#ifdef CONFIG_PM
+static int sa1100_rtc_suspend(struct platform_device *pdev, pm_message_t state)
+{
+       if (pdev->dev.power.power_state.event != state.event) {
+               if (state.event == PM_EVENT_SUSPEND &&
+                   device_may_wakeup(&pdev->dev))
+                       enable_irq_wake(IRQ_RTCAlrm);
+
+               pdev->dev.power.power_state = state;
+       }
+       return 0;
+}
+
+static int sa1100_rtc_resume(struct platform_device *pdev)
+{
+       if (pdev->dev.power.power_state.event != PM_EVENT_ON) {
+               if (device_may_wakeup(&pdev->dev))
+                       disable_irq_wake(IRQ_RTCAlrm);
+               pdev->dev.power.power_state = PMSG_ON;
+       }
+       return 0;
+}
+#else
+#define sa1100_rtc_suspend     NULL
+#define sa1100_rtc_resume      NULL
+#endif
+
 static struct platform_driver sa1100_rtc_driver = {
        .probe          = sa1100_rtc_probe,
        .remove         = sa1100_rtc_remove,
+       .suspend        = sa1100_rtc_suspend,
+       .resume         = sa1100_rtc_resume,
        .driver         = {
                .name           = "sa1100-rtc",
        },
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to