Re: [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler
From: Jarkko Nikula <hidden>
Date: 2011-02-11 10:50:59
Also in:
linux-omap
On Fri, 11 Feb 2011 12:15:18 +0530 Keerthy [off-list ref] wrote:
quoted hunk
From: Richard woodruff <redacted> ProDB00017052 - ARDY interrupt reasserted after being cleared. This errata caused intermittent i2c instabilty(1 error per 3 hours) on several customer platforms. After applying the workaround the intermittent errors were not seen. This is not captured in the usual errata documents. The workaround is to have a double clear of ARDY status in irq handler. Signed-off-by: Richard woodruff <redacted> Signed-off-by: Keerthy <redacted> --- drivers/i2c/busses/i2c-omap.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 445de08..9bcefae 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c@@ -851,7 +851,8 @@ complete: OMAP_I2C_STAT_AL)) { omap_i2c_ack_stat(dev, stat & (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR | - OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR)); + OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR | + OMAP_I2C_STAT_ARDY));
Most probably this is correct but I was just wondering are there any use for ARDY interrupt (register access ready) anyway and is the ARDY here caused by omap_i2c_write_reg for STAT_NACK in a few lines above. Just my 2 cents about possible further patches (while this having the priority as fixes the issue). -- Jarkko