While I was working on this driver to debug some issues, re-understanding the state machine was harder than I expected due to some confusing code. So, I decided to reorganize this a little to make my life easier. There is potential for more cleanup, but I propose this as a first step. No regressions experienced so far on my Renesas Lager board (R-Car H2). This series is RFT because this needs to be tested on a Gen3 SoC as well, but this will probably be happening around FOSDEM where I get access to proper HW. Still, release early... If you have comments, feel free. Wolfram Sang (7): i2c: sh_mobile: simplify sending address for RX i2c: sh_mobile: remove get_data function i2c: sh_mobile: drop 'data' argument from i2c_op function i2c: sh_mobile: remove is_first_byte function i2c: sh_mobile: replace break; with if-block i2c: sh_mobile: refactor rx isr i2c: sh_mobile: update copyright and comments drivers/i2c/busses/i2c-sh_mobile.c | 106 +++++++++++++------------------------ 1 file changed, 37 insertions(+), 69 deletions(-) -- 2.11.0