summaryrefslogtreecommitdiff
path: root/Documentation/DocBook/dvb/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorStefan Eichenberger <stefan.eichenberger@toradex.com>2026-02-18 16:08:50 +0100
committerAndi Shyti <andi.shyti@kernel.org>2026-03-27 13:51:21 +0100
commit13101db735bdb29c5f60e95fb578690bd178b30f (patch)
treec2580e001b777e3af4344d36144f4c634e08d694 /Documentation/DocBook/dvb/git@git.tavy.me:linux.git
parentf88e2e748a1fc3cb4b8d163a9be790812f578850 (diff)
i2c: imx: ensure no clock is generated after last read
When reading from the I2DR register, right after releasing the bus by clearing MSTA and MTX, the I2C controller might still generate an additional clock cycle which can cause devices to misbehave. Ensure to only read from I2DR after the bus is not busy anymore. Because this requires polling, the read of the last byte is moved outside of the interrupt handler. An example for such a failing transfer is this: i2ctransfer -y -a 0 w1@0x00 0x02 r1 Error: Sending messages failed: Connection timed out It does not happen with every device because not all devices react to the additional clock cycle. Fixes: 5f5c2d4579ca ("i2c: imx: prevent rescheduling in non dma mode") Cc: stable@vger.kernel.org # v6.13+ Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> Signed-off-by: Andi Shyti <andi.shyti@kernel.org> Link: https://lore.kernel.org/r/20260218150940.131354-3-eichest@gmail.com
Diffstat (limited to 'Documentation/DocBook/dvb/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions