| From 5e92442bb4121562231e6daf8a2d1306cb5f8805 Mon Sep 17 00:00:00 2001 |
| From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> |
| Date: Mon, 5 Oct 2020 19:13:15 +0200 |
| Subject: ACPI: EC: PM: Flush EC work unconditionally after wakeup |
| |
| From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| |
| commit 5e92442bb4121562231e6daf8a2d1306cb5f8805 upstream. |
| |
| Commit 607b9df63057 ("ACPI: EC: PM: Avoid flushing EC work when EC |
| GPE is inactive") has been reported to cause some power button wakeup |
| events to be missed on some systems, so modify acpi_ec_dispatch_gpe() |
| to call acpi_ec_flush_work() unconditionally to effectively reverse |
| the changes made by that commit. |
| |
| Also note that the problem which prompted commit 607b9df63057 is not |
| reproducible any more on the affected machine. |
| |
| Fixes: 607b9df63057 ("ACPI: EC: PM: Avoid flushing EC work when EC GPE is inactive") |
| Reported-by: Raymond Tan <raymond.tan@intel.com> |
| Cc: 5.4+ <stable@vger.kernel.org> # 5.4+ |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/acpi/ec.c | 7 +++---- |
| 1 file changed, 3 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/acpi/ec.c |
| +++ b/drivers/acpi/ec.c |
| @@ -2019,12 +2019,11 @@ bool acpi_ec_dispatch_gpe(void) |
| * to allow the caller to process events properly after that. |
| */ |
| ret = acpi_dispatch_gpe(NULL, first_ec->gpe); |
| - if (ret == ACPI_INTERRUPT_HANDLED) { |
| + if (ret == ACPI_INTERRUPT_HANDLED) |
| pm_pr_dbg("ACPI EC GPE dispatched\n"); |
| |
| - /* Flush the event and query workqueues. */ |
| - acpi_ec_flush_work(); |
| - } |
| + /* Flush the event and query workqueues. */ |
| + acpi_ec_flush_work(); |
| |
| return false; |
| } |