diff options
-rw-r--r-- | drivers/i2c/busses/i2c-pxa.c | 5 |
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); |