|
@@ -146,6 +146,13 @@ static int acpi_pm_enter(suspend_state_t pm_state)
|
|
if (ACPI_SUCCESS(status) && (acpi_state == ACPI_STATE_S3))
|
|
if (ACPI_SUCCESS(status) && (acpi_state == ACPI_STATE_S3))
|
|
acpi_clear_event(ACPI_EVENT_POWER_BUTTON);
|
|
acpi_clear_event(ACPI_EVENT_POWER_BUTTON);
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Disable and clear GPE status before interrupt is enabled. Some GPEs
|
|
|
|
+ * (like wakeup GPE) haven't handler, this can avoid such GPE misfire.
|
|
|
|
+ * acpi_leave_sleep_state will reenable specific GPEs later
|
|
|
|
+ */
|
|
|
|
+ acpi_hw_disable_all_gpes();
|
|
|
|
+
|
|
local_irq_restore(flags);
|
|
local_irq_restore(flags);
|
|
printk(KERN_DEBUG "Back to C!\n");
|
|
printk(KERN_DEBUG "Back to C!\n");
|
|
|
|
|