diff options
| author | Wolfram Sang <wsa+renesas@sang-engineering.com> | 2025-01-15 13:36:23 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-01-23 17:22:54 +0100 |
| commit | d1e4aff10c6b06bee8bd2db0a899372c70272e65 (patch) | |
| tree | a866f0e159fabe602e1833dc7068a0d1fc16467e /scripts/patch-kernel | |
| parent | 894076b78a7ee3d794f3f68c2af6d4910990a978 (diff) | |
| download | linux-d1e4aff10c6b06bee8bd2db0a899372c70272e65.tar.gz linux-d1e4aff10c6b06bee8bd2db0a899372c70272e65.tar.bz2 linux-d1e4aff10c6b06bee8bd2db0a899372c70272e65.zip | |
i2c: rcar: fix NACK handling when being a target
[ Upstream commit 093f70c134f70e4632b295240f07d2b50b74e247 ]
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: de20d1857dd6 ("i2c: rcar: add slave support")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'scripts/patch-kernel')
0 files changed, 0 insertions, 0 deletions
