drivers/rtc/rtc-twl.c: return correct RTC event from ISR
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 <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c
index cedb6c1..4c2c6df 100644
--- a/drivers/rtc/rtc-twl.c
+++ b/drivers/rtc/rtc-twl.c
@@ -365,7 +365,7 @@
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 @@
* 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);