Message ID | 20231223141650.10679-1-hdegoede@redhat.com |
---|---|
State | Accepted |
Commit | 180a8f12c21f41740fee09ca7f7aa98ff5bb99f8 |
Headers | show |
Series | Input: goodix - Accept ACPI resources with gpio_count == 3 && gpio_int_idx == 0 | expand |
On Sat, Dec 23, 2023 at 03:16:50PM +0100, Hans de Goede wrote: > Some devices list 3 Gpio resources in the ACPI resource list for > the touchscreen: > > 1. GpioInt resource pointing to the GPIO used for the interrupt > 2. GpioIo resource pointing to the reset GPIO > 3. GpioIo resource pointing to the GPIO used for the interrupt > > Note how the third extra GpioIo resource really is a duplicate > of the GpioInt provided info. > > Ignore this extra GPIO, treating this setup the same as gpio_count == 2 && > gpio_int_idx == 0 fixes the touchscreen not working on the Thunderbook > Colossus W803 rugged tablet and likely also on the CyberBook_T116K. > > Reported-by: Maarten van der Schrieck > Closes: https://gitlab.com/AdyaAdya/goodix-touchscreen-linux-driver/-/issues/22 > Suggested-by: Maarten van der Schrieck > Tested-by: Maarten van der Schrieck > Signed-off-by: Hans de Goede <hdegoede@redhat.com> Applied, thank you.
diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c index af32fbe57b63..b068ff8afbc9 100644 --- a/drivers/input/touchscreen/goodix.c +++ b/drivers/input/touchscreen/goodix.c @@ -884,7 +884,8 @@ static int goodix_add_acpi_gpio_mappings(struct goodix_ts_data *ts) } } - if (ts->gpio_count == 2 && ts->gpio_int_idx == 0) { + /* Some devices with gpio_int_idx 0 list a third unused GPIO */ + if ((ts->gpio_count == 2 || ts->gpio_count == 3) && ts->gpio_int_idx == 0) { ts->irq_pin_access_method = IRQ_PIN_ACCESS_ACPI_GPIO; gpio_mapping = acpi_goodix_int_first_gpios; } else if (ts->gpio_count == 2 && ts->gpio_int_idx == 1) {