Thread (1 message) 1 message, 1 author, 2011-02-15

Re: [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler

From: J, KEERTHY <hidden>
Date: 2011-02-15 04:43:58
Also in: linux-omap

On Tue, Feb 15, 2011 at 5:35 AM, Kevin Hilman [off-list ref] wrote:
Keerthy [off-list ref] writes:
quoted
From: Richard woodruff <redacted>

ProDB00017052 - ARDY interrupt reasserted after being cleared.
quoted
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.
This (presumably internal) ProDB number above is meaningless in the
public changelog.  In lieu of a public erratum number, just summarize
the erratum/instability seen, references to other relevant public
errata (if any) would be useful too.   IOW, "instability" isn't quite
accurate enough.  A more detailed description of the problem/instability
is needed.
Kevin,

Yes the ProDB number is internal. I will remove it from the change log.
I will add a more detailed description of the problem.

-- 
Regards and Thanks,
Keerthy

Thanks,

Kevin
quoted
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));
                      omap_i2c_complete_cmd(dev, err);
                      return IRQ_HANDLED;
              }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help