|
|
Log in / Subscribe / Register

i2c: designware: fix WACF2200 touchscreen probe ordering

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



Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds