OSDN Git Service

platform/x86: intel_int0002_vgpio: Use acpi_register_wakeup_handler()
authorHans de Goede <hdegoede@redhat.com>
Fri, 3 Apr 2020 15:48:34 +0000 (17:48 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 4 Apr 2020 17:46:10 +0000 (19:46 +0200)
commit767191db8220db29f78c031f4d27375173c336d5
tree5583d8b4b8fd073e42753399da23f8865ebce6a7
parentddfd9dcf270ce23ed1985b66fcfa163920e2e1b8
platform/x86: intel_int0002_vgpio: Use acpi_register_wakeup_handler()

The Power Management Events (PMEs) the INT0002 driver listens for get
signalled by the Power Management Controller (PMC) using the same IRQ
as used for the ACPI SCI.

Since commit fdde0ff8590b ("ACPI: PM: s2idle: Prevent spurious SCIs from
waking up the system") the SCI triggering, without there being a wakeup
cause recognized by the ACPI sleep code, will no longer wakeup the system.

This breaks PMEs / wakeups signalled to the INT0002 driver, the system
never leaves the s2idle_loop() now.

Use acpi_register_wakeup_handler() to register a function which checks
the GPE0a_STS register for a PME and trigger a wakeup when a PME has
been signalled.

Fixes: fdde0ff8590b ("ACPI: PM: s2idle: Prevent spurious SCIs from waking up the system")
Cc: 5.4+ <stable@vger.kernel.org> # 5.4+
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/platform/x86/intel_int0002_vgpio.c