i2c: rcar: fix NACK handling when being a target
When this controller is a target, the NACK handling had two issues. First, the return value from the backend was not checked on the initial WRITE_REQUESTED. So, the driver missed to send a NACK in this case. Also, the NACK always arrives one byte late on the bus, even in the WRITE_RECEIVED case. This seems to be a HW issue. We should then not rely on the backend to correctly NACK the superfluous byte as well. Fix both issues by introducing a flag which gets set whenever the backend requests a NACK and keep sending it until we get a STOP condition. Fixes: de20d185 ("i2c: rcar: add slave support") Signed-off-by:Wolfram Sang <wsa+renesas@sang-engineering.com>
Loading
Please register or sign in to comment