intel-gpio for v6.17-1

* Fix a regression to make GpioInt() by index work again
 * Ingnore spurious wakeups from touchpad on GPD G1619-05
 * Accept debounce from GpioIo() resources
 
 The following is an automated git shortlog grouped by driver:
 
 gpiolib:
  -  acpi: initialize acpi_gpio_info struct
  -  acpi: Ignore touchpad wakeup on GPD G1619-05
  -  acpi: Program debounce when finding GPIO
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEqaflIX74DDDzMJJtb7wzTHR8rCgFAmjIMl8ACgkQb7wzTHR8
 rCgNbw//Ubm5ry9MnC4P8eyGoR4IG4EPBT/JYHihZUbEcoIzVY/vDDP/Ukxca36f
 4cByy9U9RB4LbgmXEWTpZPpnuIZQgWGXqv7P4H9XoLq7wQSF15UdYANFL5vplPc2
 /GDzajqTHIkIULJWMMRpabzRIBj5USy6E1grLFXcL2bXI2UiHFxrhwL3DhnF3Pgr
 mhGPA/2yfHHp3RDVZ6KDwj6ytuPN91sQoCRLu/CQ2KZRIpllydyu8AB+31+eS7RZ
 Wwylw/WmN3YQKNBZeqfy4vS6NUkicPEKH8XbfgkEbU6Jo7WNatVq+BlmU9BYWaq9
 UI1vOAKHFmofIGPBMXXM3YZKO/r4q3wlrHgia2M6c+a6gG6jYnzkOYG3C52nVVbw
 0rQxUZW21BwogGjfvPOx8Bj5fk2FV6r5r8doY6plE/SO2+P7KmMJbnqUl6yHjXhJ
 FRpwDrgzFqMc6r3iXUPuhAF7RWH1WtoIomco5yB0gNHYRql1XavQDftDu58ABG0o
 j5Pu57P3ZwXs41Nw/xi6zNQ+gDCwNva9+1RZMYBViawXIb+29aouNsjDV/sNOGUq
 FyHrUZQwXUFGA+i6MTRwqhnuCJJG/nA17WpzreQmdZQa5aybIRluQDrweuzcCnqi
 zKZ3maff9noRDdNLB3HqJ5hPZqihREm6D/3+6laP2coldOMrt/Q=
 =DHtX
 -----END PGP SIGNATURE-----

Merge tag 'intel-gpio-v6.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-current

intel-gpio fixes for v6.17-rc7

* Fix a regression to make GpioInt() by index work again
* Ingnore spurious wakeups from touchpad on GPD G1619-05
* Accept debounce from GpioIo() resources
This commit is contained in:
Bartosz Golaszewski 2025-09-16 11:36:37 +02:00
commit 2b464fd599
2 changed files with 21 additions and 2 deletions

View File

@ -942,8 +942,9 @@ struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
{
struct acpi_device *adev = to_acpi_device_node(fwnode);
bool can_fallback = acpi_can_fallback_to_crs(adev, con_id);
struct acpi_gpio_info info;
struct acpi_gpio_info info = {};
struct gpio_desc *desc;
int ret;
desc = __acpi_find_gpio(fwnode, con_id, idx, can_fallback, &info);
if (IS_ERR(desc))
@ -957,6 +958,12 @@ struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
acpi_gpio_update_gpiod_flags(dflags, &info);
acpi_gpio_update_gpiod_lookup_flags(lookupflags, &info);
/* ACPI uses hundredths of milliseconds units */
ret = gpio_set_debounce_timeout(desc, info.debounce * 10);
if (ret)
return ERR_PTR(ret);
return desc;
}
@ -992,7 +999,7 @@ int acpi_dev_gpio_irq_wake_get_by(struct acpi_device *adev, const char *con_id,
int ret;
for (i = 0, idx = 0; idx <= index; i++) {
struct acpi_gpio_info info;
struct acpi_gpio_info info = {};
struct gpio_desc *desc;
/* Ignore -EPROBE_DEFER, it only matters if idx matches */

View File

@ -317,6 +317,18 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {
.ignore_wake = "PNP0C50:00@8",
},
},
{
/*
* Same as G1619-04. New model.
*/
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "GPD"),
DMI_MATCH(DMI_PRODUCT_NAME, "G1619-05"),
},
.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
.ignore_wake = "PNP0C50:00@8",
},
},
{
/*
* Spurious wakeups from GPIO 11