Skip to content

Commit c770657

Browse files
reidt1wsakernel
authored andcommitted
i2c: omap: Fix standard mode false ACK readings
Using standard mode, rare false ACK responses were appearing with i2cdetect tool. This was happening due to NACK interrupt triggering ISR thread before register access interrupt was ready. Removing the NACK interrupt's ability to trigger ISR thread lets register access ready interrupt do this instead. Cc: <stable@vger.kernel.org> # v3.7+ Fixes: 3b2f8f8 ("i2c: omap: switch to threaded IRQ support") Signed-off-by: Reid Tonking <reidt@ti.com> Acked-by: Vignesh Raghavendra <vigneshr@ti.com> Reviewed-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Wolfram Sang <wsa@kernel.org>
1 parent 9f85577 commit c770657

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/i2c/busses/i2c-omap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1058,7 +1058,7 @@ omap_i2c_isr(int irq, void *dev_id)
10581058
u16 stat;
10591059

10601060
stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG);
1061-
mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG);
1061+
mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG) & ~OMAP_I2C_STAT_NACK;
10621062

10631063
if (stat & mask)
10641064
ret = IRQ_WAKE_THREAD;

0 commit comments

Comments
 (0)