提交 5c64eb26 编写于 作者: M Mathias Nyman 提交者: Ben Dooks

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: NMathias Nyman <mathias.nyman@nokia.com>
Acked-by: NTony Lindgren <tony@atomide.com>
Signed-off-by: NBen Dooks <ben-linux@fluff.org>
上级 2422084a
......@@ -680,6 +680,8 @@ omap_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
if (r == 0)
r = num;
omap_i2c_wait_for_bb(dev);
out:
omap_i2c_idle(dev);
return r;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册