Re: [PATCH v13] 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=MdXGeCiaR4DnXT-jor0uh1EUJhXhmPrmkbMbQ-L35fGig@mail.gmail.com> |
On Sat, 18 Jul 2026 07:43:31 +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 > --- Acked-by: Bartosz Golaszewski <[email protected]>