]> git.ipfire.org Git - thirdparty/linux.git/commit
i2c: imx-lpi2c: change to PIO mode in system-wide suspend/resume progress
authorCarlos Song <carlos.song@nxp.com>
Fri, 21 Nov 2025 03:00:30 +0000 (11:00 +0800)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 14 Jan 2026 11:58:26 +0000 (12:58 +0100)
commitf2a3f51365bf672dab4b58d1e8954926a9196b44
treee71e370fa1beed5e9211c0a2823713b334174480
parentc0c50e3743e467ec4752c638e10e97f89c8644e2
i2c: imx-lpi2c: change to PIO mode in system-wide suspend/resume progress

EDMA resumes early and suspends late in the system power transition
sequence, while LPI2C enters the NOIRQ stage for both suspend and resume.
This means LPI2C resources become available before EDMA is fully resumed.
Once IRQs are enabled, a slave device may immediately trigger an LPI2C
transfer. If the transfer length meets DMA requirements, the driver will
attempt to use EDMA even though EDMA may still be unavailable.

This timing gap can lead to transfer failures. To prevent this, force
LPI2C to use PIO mode during system-wide suspend and resume transitions.
This reduces dependency on EDMA and avoids using an unready DMA resource.

Fixes: a09c8b3f9047 ("i2c: imx-lpi2c: add eDMA mode support for LPI2C")
Signed-off-by: Carlos Song <carlos.song@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
drivers/i2c/busses/i2c-imx-lpi2c.c