• Rafael J. Wysocki's avatar
    ACPI / PM: Do not reconfigure GPEs for suspend-to-idle · 147a7d9d
    Rafael J. Wysocki authored
    It is reported that commit 235d81a6 (ACPI / PM: Clean up device
    wakeup enable/disable code) broke wakeup from suspend-to-idle on
    some platforms.  That is due to the acpi_enable_all_wakeup_gpes() in
    acpi_s2idle_prepare() which needs acpi_enable_wakeup_devices() to be
    called before it as the latter sets up the GPE masks used by the
    former and commit 235d81a6 removed acpi_enable_wakeup_devices()
    invocation from the suspend-to-idle path.
    
    However, acpi_enable_wakeup_devices() does more than just setting
    the GPE masks and the remaining part of it is not necessary for
    suspend-to-idle.  Moreover, non-wakeup GPEs are disabled on suspend-
    to-idle entry to avoid spurious wakeups, but that should not be
    strictly necessary any more after commit 33e4f80e (ACPI / PM:
    Ignore spurious SCI wakeups from suspend-to-idle) which prevents
    spurious GPE wakeups from resuming the system.  The only consequence
    of leaving non-wakeup GPEs enabled may be more interrupt-related
    activity while suspended, which is not ideal (more energy is used
    if that happens), but it is not critical too.
    
    For this reason, drop the GPE reconfiguration from the suspend-to-idle
    path entirely.
    
    This change also allows Dells XPS13 9360 blacklisted by commit
    71630b7a (ACPI / PM: Blacklist Low Power S0 Idle _DSM for Dell
    XPS13 9360) to use the power button for waking up from suspend-
    to-idle and it helps at least one other older Dell system (the
    wakeup button GPE on that one is not listed in _PRW for any
    devices, so it is not regarded as a wakeup one and gets disabled
    on suspend-to-idle entry today).
    
    Fixes: 235d81a6 (ACPI / PM: Clean up device wakeup enable/disable code)
    Reported-by: default avatarDu Wenkai <wenkai.du@intel.com>
    Tested-by: default avatarDu Wenkai <wenkai.du@intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    147a7d9d
sleep.c 31 KB