On Fri, Feb 18, 2011 at 5:38 AM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > * Keerthy <j-keerthy@xxxxxx> [110215 20:53]: >> From: Richard woodruff <r-woodruff2@xxxxxx> >> >> This errata occurs when the ARDY interrupt generation is enabled. >> At the begining of every new transaction the ARDY interrupt is cleared. >> >> On continuous i2c transactions where after clearing the ARDY bit from >> I2C_STAT register (clearing the interrupt), the IRQ line is reasserted and the >> I2C_STAT[ARDY] bit set again on 1. In fact, the ARDY status bit is not cleared >> at the write access to I2C_STAT[ARDY] and only the IRQ line is deasserted and >> then reasserted. This is not captured in the usual errata documents. >> >> The workaround is to have a double clear of ARDY status in irq handler. > > I'll add this to omap-testing for few days and then if no issue Ben > can merge this. Thanks Tony. > > Regards, > > Tony > >> Signed-off-by: Richard woodruff <r-woodruff2@xxxxxx> >> Signed-off-by: Keerthy <j-keerthy@xxxxxx> >> --- >> drivers/i2c/busses/i2c-omap.c | 6 +++++- >> 1 files changed, 5 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c >> index b605ff3..5b35cf4 100644 >> --- a/drivers/i2c/busses/i2c-omap.c >> +++ b/drivers/i2c/busses/i2c-omap.c >> @@ -847,11 +847,15 @@ complete: >> dev_err(dev->dev, "Arbitration lost\n"); >> err |= OMAP_I2C_STAT_AL; >> } >> + /* >> + * ProDB0017052: Clear ARDY bit twice >> + */ >> if (stat & (OMAP_I2C_STAT_ARDY | OMAP_I2C_STAT_NACK | >> 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; >> } >> -- >> 1.7.0.4 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Regards and Thanks, Keerthy -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html