• Rafael J. Wysocki's avatar
    ACPI: EC: PM: Avoid flushing EC work when EC GPE is inactive · 607b9df6
    Rafael J. Wysocki authored
    Flushing the EC work while suspended to idle when the EC GPE status
    is not set causes some EC wakeup events (notably power button and
    lid ones) to be missed after a series of spurious wakeups on the Dell
    XPS13 9360 in my office.
    
    If that happens, the machine cannot be woken up from suspend-to-idle
    by the power button or lid status change and it needs to be woken up
    in some other way (eg. by a key press).
    
    Flushing the EC work only after successful dispatching the EC GPE,
    which means that its status has been set, avoids the issue, so change
    the code in question accordingly.
    
    Fixes: 7b301750 ("ACPI: EC: PM: Avoid premature returns from acpi_s2idle_wake()")
    Cc: 5.4+ <stable@vger.kernel.org> # 5.4+
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: default avatarChris Chiu <chiu@endlessm.com>
    607b9df6
ec.c 57.3 KB