Make sure that in case access to non-exisiting I2C address is done HW is reset afterwards and works properly for next access.

Signed-off-by: Dirk Behme <[EMAIL PROTECTED]>
Index: linux-davinci/drivers/i2c/busses/i2c-davinci.c
===================================================================
--- linux-davinci.orig/drivers/i2c/busses/i2c-davinci.c
+++ linux-davinci/drivers/i2c/busses/i2c-davinci.c
@@ -348,6 +348,12 @@ i2c_davinci_xfer_msg(struct i2c_adapter 
                        w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
                        MOD_REG_BIT(w, DAVINCI_I2C_MDR_STP, 1);
                        davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
+#ifdef DAVINCI_HACK
+                       /* Reset error for next access working properly again */
+                       w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
+                       MOD_REG_BIT(w, DAVINCI_I2C_MDR_IRS, 0);
+                       davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
+#endif
                }
                return -EREMOTEIO;
        }

_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to