[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201005081639.GA7431@kozik-lap>
Date: Mon, 5 Oct 2020 10:16:39 +0200
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Christian Eggers <ceggers@...i.de>
Cc: Oleksij Rempel <linux@...pel-privat.de>,
Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
Uwe Kleine-König
<u.kleine-koenig@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
NXP Linux Team <linux-imx@....com>,
linux-i2c@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, stable@...r.kernel.org
Subject: Re: [PATCH v2 3/3] i2c: imx: Don't generate STOP condition if
arbitration has been lost
On Fri, Oct 02, 2020 at 05:23:05PM +0200, Christian Eggers wrote:
> If arbitration is lost, the master automatically changes to slave mode.
> I2SR_IBB may or may not be reset by hardware. Raising a STOP condition
> by resetting I2CR_MSTA has no effect and will not clear I2SR_IBB.
>
> So calling i2c_imx_bus_busy() is not required and would busy-wait until
> timeout.
>
> Signed-off-by: Christian Eggers <ceggers@...i.de>
> Cc: stable@...r.kernel.org # Requires trivial backporting, simple remove
> # the 3rd argument from the calls to
> # i2c_imx_bus_busy().
> ---
> drivers/i2c/busses/i2c-imx.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
Tested (not extensively) on Vybrid VF500 (Toradex VF50):
Tested-by: Krzysztof Kozlowski <krzk@...nel.org>
The I2C on Vybrid VF500 still works fine (also bigger transfers). I did
not test this actual condition (arbitration) but only a regular I2C
driver (BQ27xxx fuel gauge). Obviously this only proves that regular
operation is not broken...
Best regards,
Krzysztof
Powered by blists - more mailing lists