gpiolib: acpi: Add honor_wakeup module-option + quirk mechanism
authorHans de Goede <hdegoede@redhat.com>
Sun, 5 Jan 2020 16:03:57 +0000 (17:03 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 7 Jan 2020 11:58:15 +0000 (12:58 +0100)
commitaa23ca3d98f756d5b1e503fb140665fb24a41a38
treee07a61713359c952402d5a3decb4fd4a7144543f
parent1ad1b54099c231aed8f6f257065c1b322583f264
gpiolib: acpi: Add honor_wakeup module-option + quirk mechanism

On some laptops enabling wakeup on the GPIO interrupts used for ACPI _AEI
event handling causes spurious wakeups.

This commit adds a new honor_wakeup option, defaulting to true (our current
behavior), which can be used to disable wakeup on troublesome hardware
to avoid these spurious wakeups.

This is a workaround for an architectural problem with s2idle under Linux
where we do not have any mechanism to immediately go back to sleep after
wakeup events, other then for embedded-controller events using the standard
ACPI EC interface, for details see:
https://lore.kernel.org/linux-acpi/61450f9b-cbc6-0c09-8b3a-aff6bf9a0b3c@redhat.com/

One series of laptops which is not able to suspend without this workaround
is the HP x2 10 Cherry Trail models, this commit adds a DMI based quirk
which makes sets honor_wakeup to false on these models.

Cc: stable@vger.kernel.org
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20200105160357.97154-3-hdegoede@redhat.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib-acpi.c