[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