Thread (2 messages) 2 messages, 2 authors, 2026-02-04

Re: [Patch V4] i2c: imx-lpi2c: fix SMBus block read NACK after byte count

From: Andi Shyti <andi.shyti@kernel.org>
Date: 2026-02-04 01:55:38
Also in: imx, linux-i2c, lkml

Hi Carlos,

On Fri, Jan 23, 2026 at 06:54:58PM +0800, Carlos Song wrote:
The LPI2C controller sends a NACK at the end of a receive command
unless another receive command is already queued in MTDR. During
SMBus block reads, this causes the controller to NACK immediately
after receiving the block length byte, aborting the transfer before
the data bytes are read.

Fix this by queueing a second receive command as soon as the block
length byte is received, keeping MTDR non-empty and ensuring
continuous ACKs. The initial receive command reads the block length,
and the subsequent command reads the remaining data bytes according
to the reported length.

Fixes: a55fa9d0e42e ("i2c: imx-lpi2c: add low power i2c bus driver")
Signed-off-by: Carlos Song <redacted>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
merged to i2c/i2c-host-fixes.

Thanks,
Andi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help