aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoiz Sonasath <m-sonasath@ti.com>2009-08-20 12:21:15 -0400
committerBen Dooks <ben-linux@fluff.org>2009-08-20 17:27:57 -0400
commitdd11976aea15bde53ce40b076dd5fa462c74f41a (patch)
tree86c7ce71b01f533092de89f9d2375f8d69afa3c5
parentdcc4ec26942d3bae2c5a82ab8346ab53b540a171 (diff)
i2c-omap: ACK pending [R/X]DR and [R/X]RDY interrupts
ACK any pending read/write interrupts before exiting the ISR either after completing the operation [ARDY interrupt] or in case of an error [NACK|AL interrupt] Signed-off-by: Moiz Sonasath <m-sonasath@ti.com> Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
-rw-r--r--drivers/i2c/busses/i2c-omap.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 94639d0aabd5..16b39f470a7c 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -694,6 +694,9 @@ complete:
694 } 694 }
695 if (stat & (OMAP_I2C_STAT_ARDY | OMAP_I2C_STAT_NACK | 695 if (stat & (OMAP_I2C_STAT_ARDY | OMAP_I2C_STAT_NACK |
696 OMAP_I2C_STAT_AL)) { 696 OMAP_I2C_STAT_AL)) {
697 omap_i2c_ack_stat(dev, stat &
698 (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
699 OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
697 omap_i2c_complete_cmd(dev, err); 700 omap_i2c_complete_cmd(dev, err);
698 return IRQ_HANDLED; 701 return IRQ_HANDLED;
699 } 702 }