]> git.baikalelectronics.ru Git - kernel.git/commit
i2c: rcar: init new messages in irq
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Thu, 19 Nov 2015 15:56:46 +0000 (16:56 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Mon, 30 Nov 2015 13:21:29 +0000 (14:21 +0100)
commit4550ff993563df2d578e57c02979f5d458b379b6
tree215899eda93f0eab8c4fc75902b50d56e34f8b68
parentbc5c5490843db1430e7f5637fd2528988b970ac6
i2c: rcar: init new messages in irq

Setting up new messages was done in process context while handling a
message was in interrupt context. Because of the HW design, this IP core
is sensitive to timing, so the context switches were too expensive. Move
this setup to interrupt context as well.

In my test setup, this fixed the occasional 'data byte sent twice' issue
which a number of people have seen. It also fixes to send REP_START
after a read message which was wrongly send as a STOP + START sequence
before.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-rcar.c