i2c-omap: Make sure i2c bus is free before setting it to idle
If the i2c bus receives an interrupt with both BB (bus busy) and ARDY (register access ready) statuses set during the tranfer of the last message the bus was put to idle while still busy. This caused bus to timeout. Signed-off-by: Mathias Nyman <mathias.nyman@nokia.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
This commit is contained in:
parent
2422084a94
commit
5c64eb26ed
|
@ -680,6 +680,8 @@ omap_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
|
||||||
|
|
||||||
if (r == 0)
|
if (r == 0)
|
||||||
r = num;
|
r = num;
|
||||||
|
|
||||||
|
omap_i2c_wait_for_bb(dev);
|
||||||
out:
|
out:
|
||||||
omap_i2c_idle(dev);
|
omap_i2c_idle(dev);
|
||||||
return r;
|
return r;
|
||||||
|
|
Loading…
Reference in New Issue