]> asedeno.scripts.mit.edu Git - linux.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)
commitcc21d0b4b62e41e5013d763adade5ea4462c33a4
tree215899eda93f0eab8c4fc75902b50d56e34f8b68
parentb9d0684c79c4b9d30ce0d47d3270493dd0e76e59
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