[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <2af51b9c-cde6-4347-b062-daa87bddd8ff@gmail.com>
Date: Fri, 11 Apr 2025 16:06:53 +0200
From: Emanuele Ghidoli <ghidoliemanuele@...il.com>
To: Carlos Song <carlos.song@....com>
Cc: Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
Emanuele Ghidoli <emanuele.ghidoli@...adex.com>,
"linux-i2c@...r.kernel.org" <linux-i2c@...r.kernel.org>,
"imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Francesco Dolcini <francesco.dolcini@...adex.com>,
Francesco Dolcini <francesco@...cini.it>, Aisheng Dong
<aisheng.dong@....com>, Andi Shyti <andi.shyti@...nel.org>,
Shawn Guo <shawnguo@...nel.org>, Sascha Hauer <s.hauer@...gutronix.de>
Subject: Re: [PATCH v1] i2c: lpi2c: implement master_xfer_atomic callback
On 11/04/2025 13:55, Carlos Song wrote:
>> On Wed, Mar 19, 2025 at 03:51:14PM +0100, Francesco Dolcini wrote:
>>> From: Emanuele Ghidoli <emanuele.ghidoli@...adex.com>
>>>
>>> Rework the read and write code paths in the driver to support
>>> operation in atomic contexts. To achieve this, the driver must not
>>> rely on IRQs or perform any scheduling, e.g., via a sleep or schedule
>>> routine. Even jiffies do not advance in atomic contexts, so timeouts
>>> based on them are substituted with delays.
>>>
>>> Implement atomic, sleep-free, and IRQ-less operation. This increases
>>> complexity but is necessary for atomic I2C transfers required by some
>>> hardware configurations, e.g., to trigger reboots on an external PMIC chip.
>>>
>>> Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@...adex.com>
>>> Signed-off-by: Francesco Dolcini <francesco.dolcini@...adex.com>
>>
>> Any comment on this?
> Looks good. Thank you for your work!
> Do you test it at some board? How can we test simply?
We tested it also by using the xfer_atomic for "normal" transfers
(.master_xfer = lpi2c_imx_xfer_atomic).
The driver is used to drive multiple buses with different devices.
Emanuele
Powered by blists - more mailing lists