i2c: uniphier-f: fill TX-FIFO only in IRQ handler for repeated START
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 6 Dec 2018 03:55:26 +0000 (12:55 +0900)
committerWolfram Sang <wsa@the-dreams.de>
Thu, 6 Dec 2018 22:14:59 +0000 (23:14 +0100)
commitcd8843f541cc0ef057e27f1afba46374bbb84219
treea110d8df03db4882e4caaeb21460e2407736d786
parentc2a653deaa81f5a750c0dfcbaf9f8e5195cbe4a5
i2c: uniphier-f: fill TX-FIFO only in IRQ handler for repeated START

- For a repeated START condition, this controller starts data transfer
   immediately after the slave address is written to the TX-FIFO.

 - Once the TX-FIFO empty interrupt is asserted, the controller makes
   a pause even if additional data are written to the TX-FIFO.

Given those circumstances, the data after a repeated START may not be
transferred if the interrupt is asserted while the TX-FIFO is being
filled up. A more reliable way is to append TX data only in the
interrupt handler.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-uniphier-f.c