drivers/rtc/rtc-twl.c: return correct RTC event from ISR
authorVenu Byravarasu <vbyravarasu@nvidia.com>
Fri, 23 Mar 2012 22:02:34 +0000 (15:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 23 Mar 2012 23:58:39 +0000 (16:58 -0700)
Following changes are made as part of this change:

1. As TWL RTC supports periodic interrupt, the correct event should be
   RTC_PF instead of RTC_UF.

2. No need to initialize variable "events" to 0 & then OR it with the
   event values.  Hence fixing it.

Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-twl.c

index cedb6c145fc4d090ba1c1489c5032e61f82d450c..4c2c6df2a9efc38efe61ab559df44d17898ab2ec 100644 (file)
@@ -365,7 +365,7 @@ out:
 
 static irqreturn_t twl_rtc_interrupt(int irq, void *rtc)
 {
-       unsigned long events = 0;
+       unsigned long events;
        int ret = IRQ_NONE;
        int res;
        u8 rd_reg;
@@ -380,9 +380,9 @@ static irqreturn_t twl_rtc_interrupt(int irq, void *rtc)
         * by reading RTS_INTERRUPTS_REGISTER[IT_TIMER,IT_ALARM]
         */
        if (rd_reg & BIT_RTC_STATUS_REG_ALARM_M)
-               events |= RTC_IRQF | RTC_AF;
+               events = RTC_IRQF | RTC_AF;
        else
-               events |= RTC_IRQF | RTC_UF;
+               events = RTC_IRQF | RTC_PF;
 
        res = twl_rtc_write_u8(BIT_RTC_STATUS_REG_ALARM_M,
                                   REG_RTC_STATUS_REG);