Skip to content

Commit 4cdbf7d

Browse files
takondraWolfram Sang
authored andcommitted
i2c: omap: Clear ARDY bit twice
Initially commit cb527ed "i2c-omap: Double clear of ARDY status in IRQ handler" added a workaround for undocumented errata ProDB0017052. But then commit 1d7afc9 "i2c: omap: ack IRQ in parts" refactored code and missed one of ARDY clearings. So current code violates errata. It causes often i2c bus timeouts on my Pandaboard. This patch adds a second clearing in place. Signed-off-by: Grygorii Strashko <[email protected]> Signed-off-by: Taras Kondratiuk <[email protected]> Signed-off-by: Wolfram Sang <[email protected]> Cc: [email protected]
1 parent 47b6e47 commit 4cdbf7d

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/i2c/busses/i2c-omap.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,9 @@ omap_i2c_isr_thread(int this_irq, void *dev_id)
939939
/*
940940
* ProDB0017052: Clear ARDY bit twice
941941
*/
942+
if (stat & OMAP_I2C_STAT_ARDY)
943+
omap_i2c_ack_stat(dev, OMAP_I2C_STAT_ARDY);
944+
942945
if (stat & (OMAP_I2C_STAT_ARDY | OMAP_I2C_STAT_NACK |
943946
OMAP_I2C_STAT_AL)) {
944947
omap_i2c_ack_stat(dev, (OMAP_I2C_STAT_RRDY |

0 commit comments

Comments
 (0)