| From: |
| Hardik Prakash <hardikprakash.official-AT-gmail.com> |
| To: |
| linux-i2c-AT-vger.kernel.org |
| Subject: |
| [PATCH v9 0/2] i2c: designware: fix WACF2200 touchscreen probe ordering |
| Date: |
| Wed, 17 Jun 2026 12:29:20 +0530 |
| Message-ID: |
| <20260617065922.26004-1-hardikprakash.official@gmail.com> |
| Cc: |
| linux-gpio-AT-vger.kernel.org, wsa-AT-kernel.org, andriy.shevchenko-AT-intel.com, mario.limonciello-AT-amd.com, brgl-AT-bgdev.pl, basavaraj.natikar-AT-amd.com, linusw-AT-kernel.org, nathan-AT-kernel.org, chaitanya.kumar.borah-AT-intel.com, Hardik Prakash <hardikprakash.official-AT-gmail.com> |
| Archive-link: |
| Article |
Patch 1 reverts the broken v8 patch 2/2 which caused boot regressions
(NULL pointer dereference and probe deferral loop leading to CPU
starvation). Patch 2 is a corrected resubmission addressing all issues.
Changes from v8:
- Use acpi_gpio_get_irq_resource() instead of open-coding GPIO resource
type checks, eliminating duplication with gpiolib-acpi (Andy Shevchenko)
- Remove gpio_dep_ctx wrapper struct, pass list_head * directly (Andy)
- Add const to gpio_controller_ref.path (Andy)
- Add NULL check for resource_source.string_ptr to fix crash on hardware
where GPIO resources have no named controller (Nathan Chancellor,
Chaitanya Kumar Borah)
- Use acpi_dev_get_resources() return value properly (Andy)
- Fix all error paths to call free_gpio_controller_list() (Andy)
- Change guard to #if defined(CONFIG_ACPI) && defined(CONFIG_GPIOLIB)
- Remove erroneous put_device() calls -- acpi_get_first_physical_node()
returns a borrowed pointer with no refcount increment
- Use LIST_HEAD() macro, split adev declaration and assignment (Andy)
- scoped_guard single statement without braces (Andy)
- Remove misused Reported-by/Closes tags (Andy)
Tested on Lenovo Yoga 7 14AGP11 (83TD), Fedora 44, kernel 7.1.0-rc5+.
Touch and stylus fully functional.
Kernel bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=221494
Hardik Prakash (2):
Revert "i2c: designware: defer probe if child GpioInt controllers are
not bound"
i2c: designware: defer probe if child GpioInt controllers are not bound
drivers/i2c/busses/i2c-designware-platdrv.c | 133 ++++++++++++++++++++
1 file changed, 133 insertions(+)
base-commit: ef76a3a28c79b628890431aa344af633e892035b