[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aDk-XKZBJiT_hJq2@pengutronix.de>
Date: Fri, 30 May 2025 07:13:00 +0200
From: Oleksij Rempel <o.rempel@...gutronix.de>
To: Lukasz Kucharczyk <lukasz.kucharczyk@...ca-geosystems.com>
Cc: stefan.eichenberger@...adex.com,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Andi Shyti <andi.shyti@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
"open list:FREESCALE IMX I2C DRIVER" <linux-i2c@...r.kernel.org>,
"open list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" <imx@...ts.linux.dev>,
"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" <linux-arm-kernel@...ts.infradead.org>,
open list <linux-kernel@...r.kernel.org>,
bsp-development.geo@...ca-geosystems.com,
customers.leicageo@...gutronix.de
Subject: Re: [PATCH] i2c: imx: fix emulated smbus block read
On Tue, May 20, 2025 at 02:22:52PM +0200, Lukasz Kucharczyk wrote:
> Acknowledge the byte count submitted by the target.
> When I2C_SMBUS_BLOCK_DATA read operation is executed by
> i2c_smbus_xfer_emulated(), the length of the second (read) message is set
> to 1. Length of the block is supposed to be obtained from the target by the
> underlying bus driver.
> The i2c_imx_isr_read() function should emit the acknowledge on i2c bus
> after reading the first byte (i.e., byte count) while processing such
> message (as defined in Section 6.5.7 of System Management Bus
> Specification [1]). Without this acknowledge, the target does not submit
> subsequent bytes and the controller only reads 0xff's.
>
> In addition, store the length of block data obtained from the target in
> the buffer provided by i2c_smbus_xfer_emulated() - otherwise the first
> byte of actual data is erroneously interpreted as length of the data
> block.
>
> [1] https://smbus.org/specs/SMBus_3_3_20240512.pdf
>
> Fixes: 5f5c2d4579ca ("i2c: imx: prevent rescheduling in non dma mode")
> Signed-off-by: Lukasz Kucharczyk <lukasz.kucharczyk@...ca-geosystems.com>
Acked-by: Oleksij Rempel <o.rempel@...gutronix.de>
Thank you!
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Powered by blists - more mailing lists