On Sat, Jan 21, 2023 at 2:48 PM Mario Limonciello <mario.limonciello@xxxxxxx> wrote: > > commit 1796f808e4bb ("HID: i2c-hid: acpi: Stop setting wakeup_capable") > adjusted the policy to enable wakeup by default if the ACPI tables > indicated that a device was wake capable. > > It was reported however that this broke suspend on at least two System76 > systems in S3 mode and two Lenovo Gen2a systems, but only with S3. > When the machines are set to s2idle, wakeup behaves properly. > > Configuring the GPIOs for wakeup with S3 doesn't work properly, so only > set it when the system supports low power idle. > > Fixes: 1796f808e4bb ("HID: i2c-hid: acpi: Stop setting wakeup_capable") > Fixes: b38f2d5d9615c ("i2c: acpi: Use ACPI wake capability bit to set wake_irq") > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2357 > Link: https://bugzilla.redhat.com/show_bug.cgi?id=2162013 > Reported-by: Nathan Smythe <ncsmythe@xxxxxxxxxxxx> > Tested-by: Nathan Smythe <ncsmythe@xxxxxxxxxxxx> > Suggested-by: Raul Rangel <rrangel@xxxxxxxxxxxx> > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > --- > drivers/gpio/gpiolib-acpi.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c > index 9ef0f5641b521..17c53f484280f 100644 > --- a/drivers/gpio/gpiolib-acpi.c > +++ b/drivers/gpio/gpiolib-acpi.c > @@ -1104,7 +1104,8 @@ int acpi_dev_gpio_irq_wake_get_by(struct acpi_device *adev, const char *name, in > dev_dbg(&adev->dev, "IRQ %d already in use\n", irq); > } > > - if (wake_capable) > + /* avoid suspend issues with GPIOs when systems are using S3 */ > + if (wake_capable && acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) > *wake_capable = info.wake_capable; > > return irq; > -- > 2.34.1 > Applied, thanks! Bart