Re: [PATCH v5] i2c: imx: mark I2C adapter when hardware is powered down
Andi Shyti <[email protected]> Tue, 28 Jul 2026 17:35:27 +0200
| Newsgroups | org.kernel.vger.linux-i2c,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
Hi Carlos, On Mon, May 25, 2026 at 11:04:00AM +0800, Carlos Song (OSS) wrote: > From: Carlos Song <[email protected]> > > On some i.MX platforms, certain I2C client drivers keep a periodic > workqueue which continues to trigger I2C transfers. > > During system suspend/resume, there exists a time window between: > - suspend_noirq and the system entering suspend > - the system starting to resume and resume_noirq > > In this window, the I2C controller resources such as clock and pinctrl > may already be disabled or not yet restored. > > If a workqueue triggers an I2C transfer in this period, the driver > attempts to access I2C registers while the hardware resources are > unavailable, which may lead to system hang. > > Mark the I2C adapter as suspended during noirq suspend and block new > transfers until resume, ensuring that I2C transfers are only issued > when hardware resources are available. > > Fixes: 358025ac091e ("i2c: imx: make controller available until system suspend_noirq() and from resume_noirq()") > Cc: [email protected] > Signed-off-by: Carlos Song <[email protected]> merged to i2c/i2c-fixes. Thanks, Andi