Commit 79d2dfaa authored by Thomas Renninger's avatar Thomas Renninger Committed by Len Brown

ACPI: enable GPEs before calling _WAK on resume

It seems it's required to enable GPEs before _WAK.  E.g.  X60 triggers a
LID related GPE instead of doing a Notify in WAK.  Now the GPE reaches the
kernel and the Notify for LID status change gets thrown from there.
Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent b377fd39
...@@ -576,13 +576,10 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state) ...@@ -576,13 +576,10 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state)
ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS")); ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS"));
} }
status = acpi_evaluate_object(NULL, METHOD_NAME__WAK, &arg_list, NULL);
if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
ACPI_EXCEPTION((AE_INFO, status, "During Method _WAK"));
}
/* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
/* /*
* GPEs must be enabled before _WAK is called as GPEs
* might get fired there
*
* Restore the GPEs: * Restore the GPEs:
* 1) Disable/Clear all GPEs * 1) Disable/Clear all GPEs
* 2) Enable all runtime GPEs * 2) Enable all runtime GPEs
...@@ -591,13 +588,19 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state) ...@@ -591,13 +588,19 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state)
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
acpi_gbl_system_awake_and_running = TRUE;
status = acpi_hw_enable_all_runtime_gpes(); status = acpi_hw_enable_all_runtime_gpes();
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
status = acpi_evaluate_object(NULL, METHOD_NAME__WAK, &arg_list, NULL);
if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
ACPI_EXCEPTION((AE_INFO, status, "During Method _WAK"));
}
/* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
acpi_gbl_system_awake_and_running = TRUE;
/* Enable power button */ /* Enable power button */
(void) (void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment