i2c: omap: errata i462: fix incorrect ack for arbitration lost interrupt
authorAaro Koskinen <aaro.koskinen@iki.fi>
Sun, 20 Jan 2013 00:32:58 +0000 (02:32 +0200)
committerWolfram Sang <w.sang@pengutronix.de>
Tue, 22 Jan 2013 15:17:04 +0000 (16:17 +0100)
The errata handling function acks wrong interrupt in case of "Arbitration
lost". Fix it.

Discovered during code review, the real impact of the bug is unknown.

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
drivers/i2c/busses/i2c-omap.c

index 20d41bfa7c1989ccc6001730ce11d1117aa3fa13..832f16e19f446eba68bef36438e9ba0a54dda318 100644 (file)
@@ -803,7 +803,7 @@ static int errata_omap3_i462(struct omap_i2c_dev *dev)
                        if (stat & OMAP_I2C_STAT_AL) {
                                dev_err(dev->dev, "Arbitration lost\n");
                                dev->cmd_err |= OMAP_I2C_STAT_AL;
-                               omap_i2c_ack_stat(dev, OMAP_I2C_STAT_NACK);
+                               omap_i2c_ack_stat(dev, OMAP_I2C_STAT_AL);
                        }
 
                        return -EIO;