Re: [PATCH v12] i2c: designware: defer probe if child GpioInt controllers are not bound
Bartosz Golaszewski <[email protected]>
| Newsgroups | org.kernel.vger.linux-i2c,org.kernel.vger.linux-gpio |
|---|---|
| Message-ID | <CAMRc=MeMi7MjeX7uunV-=7XqKSimUd+obmiz2DmUHzrkGnK9iA@mail.gmail.com> |
On Thu, 16 Jul 2026 20:50:24 +0200, Andy Shevchenko <[email protected]> said: > On Thu, Jul 16, 2026 at 07:10:47AM -0700, Bartosz Golaszewski wrote: >> On Thu, 16 Jul 2026 13:30:55 +0200, Hardik Prakash >> <[email protected]> said: >> > I2C controllers may have child devices with GpioInt resources that >> > depend on GPIO controllers being fully initialized. If the I2C >> > controller probes and enumerates children before the referenced GPIO >> > controller has completed probe, GPIO interrupts may not be properly >> > configured, leading to device failures. >> > >> > On Lenovo Yoga 7 14AGP11, the WACF2200 touchscreen (child of >> > AMDI0010:02) has a GpioInt resource pointing to GPIO 157 on the >> > pinctrl-amd controller (AMDI0030:00). When i2c-designware probes >> > AMDI0010:02 before pinctrl-amd finishes initializing, I2C transactions >> > fail with lost arbitration errors: >> > >> > 0.285952 amd_gpio_probe: registering gpiochip <- GPIO chip visible >> > 0.287121 amd_gpio_probe: requesting parent IRQ <- probe still running >> > 0.301454 AMDI0010:02 dw_i2c_plat_probe: start <- races here >> > 2.348157 lost arbitration >> > >> > Add a dependency check that walks ACPI child devices and defers probe >> > until any referenced GPIO controller is bound. >> > >> > Fixes: 3812a9e84265 ("pinctrl-amd: enable IRQ for WACF2200 touchscreen on Lenovo Yoga 7 14AGP11") >> > Suggested-by: Mario Limonciello <[email protected]> >> > Suggested-by: Andy Shevchenko <[email protected]> >> > Signed-off-by: Hardik Prakash <[email protected]> >> > Assisted-by: Claude:claude-sonnet-5 >> > Assisted-by: DeepSeek:deepseek-v4-pro >> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=221494 >> > --- >> >> Looks good to me. >> >> Acked-by: Bartosz Golaszewski <[email protected]> > > But this is wrong. It's a patch over v11 (basically it's a diff v11..v12). > Hanging my head in shame as I admit I've barely glanced over the diff that looked much smaller now. Will pay more attention next time. Bart