Commit 04c688dd authored by Sonasath, Moiz's avatar Sonasath, Moiz Committed by Ben Dooks

i2c-omap: In case of a NACK|ARDY|AL return from the ISR

In case of a NACK or ARDY or AL interrupt, complete the request.
There is no need to service the RRDY/RDR or XRDY/XDR interrupts.

Refer TRM SWPU114: Figure 18-31.I2C Master Transmitter Mode, Interrupt Method,
in F/S and HS Modes

http://focus.ti.com/pdfs/wtbu/SWPU114T_PrelimFinalEPDF_06_25_2009.pdfSigned-off-by: default avatarMoiz Sonasath <m-sonasath@ti.com>
Signed-off-by: default avatarVikram pandita <vikram.pandita@ti.com>
[ben-linux@fluff.org: fixed mail format and added i2c-omap to subject]
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
parent bfb6b658
...@@ -685,8 +685,10 @@ omap_i2c_isr(int this_irq, void *dev_id) ...@@ -685,8 +685,10 @@ omap_i2c_isr(int this_irq, void *dev_id)
err |= OMAP_I2C_STAT_AL; err |= OMAP_I2C_STAT_AL;
} }
if (stat & (OMAP_I2C_STAT_ARDY | OMAP_I2C_STAT_NACK | if (stat & (OMAP_I2C_STAT_ARDY | OMAP_I2C_STAT_NACK |
OMAP_I2C_STAT_AL)) OMAP_I2C_STAT_AL)) {
omap_i2c_complete_cmd(dev, err); omap_i2c_complete_cmd(dev, err);
return IRQ_HANDLED;
}
if (stat & (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR)) { if (stat & (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR)) {
u8 num_bytes = 1; u8 num_bytes = 1;
if (dev->fifo_size) { if (dev->fifo_size) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment