* [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* Re: [PATCH] i2c: omap: Fix standard mode false ACK readings
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>
0 siblings, 1 reply; 3+ messages in thread
From: Andi Shyti @ 2023-04-25 12:45 UTC (permalink / raw)
To: Reid Tonking
Cc: tony, vigneshr, aaro.koskinen, jmkrzyszt, linux-omap, linux-i2c
Hi Reid,
On Mon, Apr 24, 2023 at 02:53:44PM -0500, Reid Tonking wrote:
> 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>
please don't leave any space between Fixes and SoB.
Add also:
Cc: <stable@vger.kernel.org> # v3.7+
and Cc the stable list.
Andi
> ---
> 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 [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