]> git.baikalelectronics.ru Git - kernel.git/commit
ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 17 Dec 2018 11:21:55 +0000 (12:21 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 18 Dec 2018 09:51:16 +0000 (10:51 +0100)
commit61c57738443c570f33430db5e582da5aad91dcf8
treeaecf36606bfff4ad9e6d3c7efdbf26059237ab34
parentf6114eb04c71f8bd3f9c6c38dcd536d2a84de253
ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle

There are systems in which non-wakeup GPEs fire during the "noirq"
suspend stage of suspending devices and that effectively prevents the
system that tries to suspend to idle from entering any low-power
state at all.  If the offending GPE fires regularly and often enough,
the system appears to be suspended, but in fact it is in a tight loop
over "noirq" suspend and "noirq" resume of devices all the time.

To prevent that from happening, disable all non-wakeup GPEs except
for the EC GPE for suspend-to-idle (the EC GPE is special, because
on some systems it has to be enabled for power button wakeup events
to be generated as expected).

Fixes: 71e81c749993 (ACPI / PM: Do not reconfigure GPEs for suspend-to-idle)
Link: https://bugzilla.kernel.org/show_bug.cgi?id=201987
Reported-by: Zhang Rui <rui.zhang@intel.com>
Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Tested-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/ec.c
drivers/acpi/internal.h
drivers/acpi/sleep.c