aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/i2c/busses/i2c-pxa.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index b914184748c9..f59224a5c761 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -966,8 +966,7 @@ static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id)
966 struct pxa_i2c *i2c = dev_id; 966 struct pxa_i2c *i2c = dev_id;
967 u32 isr = readl(_ISR(i2c)); 967 u32 isr = readl(_ISR(i2c));
968 968
969 isr &= VALID_INT_SOURCE; 969 if (!(isr & VALID_INT_SOURCE))
970 if (!isr)
971 return IRQ_NONE; 970 return IRQ_NONE;
972 971
973 if (i2c_debug > 2 && 0) { 972 if (i2c_debug > 2 && 0) {
@@ -984,7 +983,7 @@ static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id)
984 /* 983 /*
985 * Always clear all pending IRQs. 984 * Always clear all pending IRQs.
986 */ 985 */
987 writel(isr, _ISR(i2c)); 986 writel(isr & VALID_INT_SOURCE, _ISR(i2c));
988 987
989 if (isr & ISR_SAD) 988 if (isr & ISR_SAD)
990 i2c_pxa_slave_start(i2c, isr); 989 i2c_pxa_slave_start(i2c, isr);