diff options
author | Moiz Sonasath <m-sonasath@ti.com> | 2009-08-20 12:21:15 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-08-20 17:27:57 -0400 |
commit | dd11976aea15bde53ce40b076dd5fa462c74f41a (patch) | |
tree | 86c7ce71b01f533092de89f9d2375f8d69afa3c5 /drivers/i2c | |
parent | dcc4ec26942d3bae2c5a82ab8346ab53b540a171 (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>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 3 |
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 | } |