ACPI: PM: s2idle: Refine active GPEs check
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 25 Mar 2020 10:55:48 +0000 (11:55 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 25 Mar 2020 11:57:27 +0000 (12:57 +0100)
commitd5406284ff803a578ca503373624312770319054
tree82bf955cf0a12f1d42f44f1a1026dfd659762e96
parent0ce792d660bda990c675eaf14ce09594a9b85cbf
ACPI: PM: s2idle: Refine active GPEs check

The check for any active GPEs added by commit fdde0ff8590b ("ACPI:
PM: s2idle: Prevent spurious SCIs from waking up the system") turns
out to be insufficiently precise to prevent some systems from
resuming prematurely due to a spurious EC wakeup, so refine it
by first checking if any GPEs other than the EC GPE are active
and skipping all of the SCIs coming from the EC that do not produce
any genuine wakeup events after processing.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=206629
Fixes: fdde0ff8590b ("ACPI: PM: s2idle: Prevent spurious SCIs from waking up the system")
Reported-by: Ondřej Caletka <ondrej@caletka.cz>
Tested-by: Ondřej Caletka <ondrej@caletka.cz>
Cc: 5.4+ <stable@vger.kernel.org> # 5.4+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/ec.c
drivers/acpi/internal.h
drivers/acpi/sleep.c