Re: [PATCH v2] i2c: designware: amdisp: Fix resume-probe race condition issue
From: Nirujogi, Pratap
Date: Wed Mar 25 2026 - 16:36:15 EST
On 3/25/2026 4:17 PM, Andi Shyti wrote:
Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.Thanks Andi.
Hi Pratap,
On Fri, Mar 20, 2026 at 04:12:22PM -0400, Pratap Nirujogi wrote:
Identified resume-probe race condition in kernel v7.0 with the commit
38fa29b01a6a ("i2c: designware: Combine the init functions"),but this
issue existed from the beginning though not detected.
The amdisp i2c device requires ISP to be in power-on state for probe
to succeed. To meet this requirement, this device is added to genpd
to control ISP power using runtime PM. The pm_runtime_get_sync() called
before i2c_dw_probe() triggers PM resume, which powers on ISP and also
invokes the amdisp i2c runtime resume before the probe completes resulting
in this race condition and a NULL dereferencing issue in v7.0
Fix this race condition by using the genpd APIs directly during probe:
- Call dev_pm_genpd_resume() to Power ON ISP before probe
- Call dev_pm_genpd_suspend() to Power OFF ISP after probe
- Set the device to suspended state with pm_runtime_set_suspended()
- Enable runtime PM only after the device is fully initialized
Fixes: d6263c468a761 ("i2c: amd-isp: Add ISP i2c-designware driver")
Co-developed-by: Bin Du <bin.du@xxxxxxx>
Signed-off-by: Bin Du <bin.du@xxxxxxx>
Signed-off-by: Pratap Nirujogi <pratap.nirujogi@xxxxxxx>
merged to i2c/i2c-host-fixes.
Thanks,
Andi