[Patch V4] i2c: imx-lpi2c: fix SMBus block read NACK after byte count
Andi Shyti
andi.shyti at kernel.org
Tue Feb 3 17:55:34 PST 2026
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 <carlos.song at nxp.com>
> Reviewed-by: Frank Li <Frank.Li at nxp.com>
merged to i2c/i2c-host-fixes.
Thanks,
Andi
More information about the linux-arm-kernel
mailing list