|
@@ -328,8 +328,12 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap,
|
|
w |= OMAP_I2C_CON_STP;
|
|
w |= OMAP_I2C_CON_STP;
|
|
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, w);
|
|
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, w);
|
|
|
|
|
|
- r = wait_for_completion_interruptible_timeout(&dev->cmd_complete,
|
|
|
|
- OMAP_I2C_TIMEOUT);
|
|
|
|
|
|
+ /*
|
|
|
|
+ * REVISIT: We should abort the transfer on signals, but the bus goes
|
|
|
|
+ * into arbitration and we're currently unable to recover from it.
|
|
|
|
+ */
|
|
|
|
+ r = wait_for_completion_timeout(&dev->cmd_complete,
|
|
|
|
+ OMAP_I2C_TIMEOUT);
|
|
dev->buf_len = 0;
|
|
dev->buf_len = 0;
|
|
if (r < 0)
|
|
if (r < 0)
|
|
return r;
|
|
return r;
|