diff options
Diffstat (limited to 'drivers/acpi/sleep.c')
| -rw-r--r-- | drivers/acpi/sleep.c | 15 | 
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index a60ff5dfed3a..d4fbea91ab6b 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c @@ -736,21 +736,15 @@ bool acpi_s2idle_wake(void)  			return true;  		} -		/* Check non-EC GPE wakeups and dispatch the EC GPE. */ +		/* +		 * Check non-EC GPE wakeups and if there are none, cancel the +		 * SCI-related wakeup and dispatch the EC GPE. +		 */  		if (acpi_ec_dispatch_gpe()) {  			pm_pr_dbg("ACPI non-EC GPE wakeup\n");  			return true;  		} -		/* -		 * Cancel the SCI wakeup and process all pending events in case -		 * there are any wakeup ones in there. -		 * -		 * Note that if any non-EC GPEs are active at this point, the -		 * SCI will retrigger after the rearming below, so no events -		 * should be missed by canceling the wakeup here. -		 */ -		pm_system_cancel_wakeup();  		acpi_os_wait_events_complete();  		/* @@ -764,6 +758,7 @@ bool acpi_s2idle_wake(void)  			return true;  		} +		pm_wakeup_clear(acpi_sci_irq);  		rearm_wake_irq(acpi_sci_irq);  	}  | 
