Make sure that in case of I2C error (e.g. while scan for non-existing I2C device) hardware is reset properly.

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
@@ -349,6 +349,10 @@ i2c_davinci_xfer_msg(struct i2c_adapter 
                        MOD_REG_BIT(w, DAVINCI_I2C_MDR_STP, 1);
                        davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
                }
+
+               set_current_state(TASK_UNINTERRUPTIBLE);
+               schedule_timeout(2);
+               i2c_davinci_init(dev);
                return -EREMOTEIO;
        }
        return -EIO;
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to