public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] i2c: omap: Fix standard mode false ACK readings
@ 2023-04-24 19:53 Reid Tonking
  2023-04-25 12:45 ` Andi Shyti
  0 siblings, 1 reply; 3+ messages in thread
From: Reid Tonking @ 2023-04-24 19:53 UTC (permalink / raw)
  To: tony, vigneshr, aaro.koskinen, jmkrzyszt
  Cc: linux-omap, linux-i2c, Reid Tonking

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.

Fixes: 3b2f8f82dad7 ("i2c: omap: switch to threaded IRQ support")

Signed-off-by: Reid Tonking <reidt@ti.com>
---
Fixes: LCPD-29949

 drivers/i2c/busses/i2c-omap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index f9ae520aed22..7ec252199706 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -1058,7 +1058,7 @@ omap_i2c_isr(int irq, void *dev_id)
 	u16 stat;
 
 	stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG);
-	mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG);
+	mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG) & ~OMAP_I2C_STAT_NACK;
 
 	if (stat & mask)
 		ret = IRQ_WAKE_THREAD;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-04-25 15:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-24 19:53 [PATCH] i2c: omap: Fix standard mode false ACK readings Reid Tonking
2023-04-25 12:45 ` Andi Shyti
     [not found]   ` <20230425145610.j3ljepycclr3i42t@reidt-t5600.dhcp.ti.com>
2023-04-25 15:51     ` Reid Tonking

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox