]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
T2 RTC IRQ handler should only clear it's own IRQ
authorKlaus Pedersen <klaus.k.pedersen@nokia.com>
Fri, 18 Jan 2008 17:29:00 +0000 (19:29 +0200)
committerTony Lindgren <tony@atomide.com>
Fri, 18 Jan 2008 20:01:00 +0000 (12:01 -0800)
Shared interrupts shouldn't clear all pending interrupt.

Signed-off-by: Klaus Pedersen <klaus.k.pedersen@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/rtc/rtc-twl4030.c

index 0b3f6a4992bb10a7b7afd9d101967cf1a0c7b864..4e8bc5b912e6c488e32e1cb40eae7aecb69b15be 100644 (file)
@@ -409,8 +409,7 @@ static irqreturn_t twl4030_rtc_interrupt(int irq, void *rtc)
        if (!(rd_reg & PWR_RTC_INT_CLR))
                goto out;
 
-       rd_reg |= PWR_RTC_INT_CLR;
-       res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, rd_reg, REG_PWR_ISR1);
+       res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, PWR_RTC_INT_CLR, REG_PWR_ISR1);
        if (res)
                goto out;
 
@@ -438,12 +437,7 @@ static irqreturn_t twl4030_rtc_interrupt(int irq, void *rtc)
         * RTC event generates 2 interrupts in a row.
         * (no errata document available)
         */
-       res = twl4030_i2c_read_u8(TWL4030_MODULE_INT, &rd_reg, REG_PWR_ISR1);
-       if (res)
-               goto out;
-
-       rd_reg |= PWR_RTC_INT_CLR;
-       res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, rd_reg, REG_PWR_ISR1);
+       res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, PWR_RTC_INT_CLR, REG_PWR_ISR1);
        if (res)
                goto out;