mirror of https://github.com/torvalds/linux.git
gpio fixes for v6.17-rc7
- fix an ACPI I2C HID driver breakage due to not initializing a structure on the stack and passing garbage down to GPIO core - ignore touchpad wakeup on GPD G1619-05 - fix debouncing configuration when looking up GPIOs in ACPI -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEFp3rbAvDxGAT0sefEacuoBRx13IFAmjNMroACgkQEacuoBRx 13IvUxAA13JV3H8rd2eoYFnSRNIGRdZdNJspNl7u7+uhXdjdWNDg80SNq/5TbrOp CsCnTMvPZ2zmuxgM/LLgEMqyXrkzHI2JL4uiIMito8EY/Dbs+FEawav9Xjf9SDJ7 THar8bIINAuP4VFYi8nSbUdJj81gI0vblnp5XaFPKuy6Z4ePkwT/Jhu7sGqHO7QF c+SypCoff8gWOB2SdwQV/Z+csG8uSzYNQARtxzQZXF5dqwpxIoj41bfOi3+mv9WT lW8T+3xQaGQIE6cJ+4v4kV2bEoXRAgMBWPLUAsn+szA6mSgOObcg9PdCgPQ+4KKt nVj0ncL6GsT5FQHrEZ39wfMZFX2ti62q6VE0c9RRcgrh17Q2Mt6ACg0+DOwO4aSh Uz5fym7Mami72oz+9V5RFUyxU/RcZpXg3/qEPWlpyAJ31/3xgh4KkUotGvOuXrri Bk+3l+3Ef1+DHRHy2A6GzQe0kFPPj5Jhrmzyqwm+dWYPxBHf7I62JXNvLxdwksDh YRXnUH3m7D43u/YiCuxCrrclnZ6VAelwgcTCXg5MD4G1KfswX8iax+qT2i4bqTwe cTyHFO8RH2cAxSR+wJHSerOQ/zEsRT8+lnaxGwmCVuuGJtATrcTrzAyMbOqan6iZ /zOnmec2H1Gj51LGyHS+NaO7gwQUlTBTcInuM3nnYe2qFjEnc04= =6FbZ -----END PGP SIGNATURE----- Merge tag 'gpio-fixes-for-v6.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux Pull gpio fixes from Bartosz Golaszewski: - fix an ACPI I2C HID driver breakage due to not initializing a structure on the stack and passing garbage down to GPIO core - ignore touchpad wakeup on GPD G1619-05 - fix debouncing configuration when looking up GPIOs in ACPI * tag 'gpio-fixes-for-v6.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: gpiolib: acpi: initialize acpi_gpio_info struct gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-05 gpiolib: acpi: Program debounce when finding GPIO
This commit is contained in:
commit
0903d0985a
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue