lkml.org 
[lkml]   [2011]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 3/6] [RFC] rtc: rtc-cmos: Add pm_stay_awake/pm_relax calls around IRQ
Date
Flag the rtc-cmos IRQ event as a wakeup event using pm_stay_awake
and pm_relax()

CC: Rafael J. Wysocki <rjw@sisk.pl>
CC: arve@android.com
CC: markgross@thegnar.org
CC: Alan Stern <stern@rowland.harvard.edu>
CC: amit.kucheria@linaro.org
CC: farrowg@sg.ibm.com
CC: Dmitry Fink (Palm GBU) <Dmitry.Fink@palm.com>
CC: linux-pm@lists.linux-foundation.org
CC: khilman@ti.com
CC: Magnus Damm <damm@opensource.se>
CC: mjg@redhat.com
CC: peterz@infradead.org
Signed-off-by: John Stultz <john.stultz@linaro.org>
---
drivers/rtc/rtc-cmos.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index 05beb6c..1cc4688 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -538,11 +538,15 @@ static struct bin_attribute nvram = {

static struct cmos_rtc cmos_rtc;

+static struct wakeup_source *rtc_cmos_wakelock;
+
static irqreturn_t cmos_interrupt(int irq, void *p)
{
u8 irqstat;
u8 rtc_control;

+ __pm_stay_awake(rtc_cmos_wakelock);
+
spin_lock(&rtc_lock);

/* When the HPET interrupt handler calls us, the interrupt
@@ -573,9 +577,12 @@ static irqreturn_t cmos_interrupt(int irq, void *p)

if (is_intr(irqstat)) {
rtc_update_irq(p, 1, irqstat);
+ __pm_relax(rtc_cmos_wakelock);
return IRQ_HANDLED;
- } else
- return IRQ_NONE;
+ }
+
+ __pm_relax(rtc_cmos_wakelock);
+ return IRQ_NONE;
}

#ifdef CONFIG_PNP
@@ -1153,6 +1160,8 @@ static int __init cmos_init(void)
{
int retval = 0;

+ rtc_cmos_wakelock = wakeup_source_register("rtc_cmos");
+
#ifdef CONFIG_PNP
retval = pnp_register_driver(&cmos_pnp_driver);
if (retval == 0)
--
1.7.3.2.146.gca209


\
 
 \ /
  Last update: 2011-09-26 21:17    [W:0.080 / U:0.296 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site