Revert "ACPICA: Clear status of GPEs before enabling them" [Linux 5.1]

Revert "ACPICA: Clear status of GPEs before enabling them" [Linux 5.1]

This Linux kernel change "Revert “ACPICA: Clear status of GPEs before enabling them”" is included in the Linux 5.1 release. This change is authored by Rafael J. Wysocki <rafael.j.wysocki [at] intel.com> on Tue Apr 30 11:18:21 2019 +0200. The commit for this change in Linux stable tree is 2c2a2fb (patch).

Revert "ACPICA: Clear status of GPEs before enabling them"

Revert commit c8b1917c8987 ("ACPICA: Clear status of GPEs before
enabling them") that causes problems with Thunderbolt controllers
to occur if a dock device is connected at init time (the xhci_hcd
and thunderbolt modules crash which prevents peripherals connected
through them from working).

Commit c8b1917c8987 effectively causes commit ecc1165b8b74 ("ACPICA:
Dispatch active GPEs at init time") to get undone, so the problem
addressed by commit ecc1165b8b74 appears again as a result of it.

Fixes: c8b1917c8987 ("ACPICA: Clear status of GPEs before enabling them")
Link: https://lore.kernel.org/lkml/[email protected]/T/#u
Link: https://bugzilla.opensuse.org/show_bug.cgi?id=1132943
Reported-by: Michael Hirmke <[email protected]>
Reported-by: Takashi Iwai <[email protected]>
Cc: 4.17+ <[email protected]> # 4.17+
Signed-off-by: Rafael J. Wysocki <[email protected]>

There are 6 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/acpi/acpica/evgpe.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/acpi/acpica/evgpe.c b/drivers/acpi/acpica/evgpe.c
index 5e9d734..62d3aa7 100644
--- a/drivers/acpi/acpica/evgpe.c
+++ b/drivers/acpi/acpica/evgpe.c
@@ -81,12 +81,8 @@ acpi_status acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info)

    ACPI_FUNCTION_TRACE(ev_enable_gpe);

-   /* Clear the GPE status */
-   status = acpi_hw_clear_gpe(gpe_event_info);
-   if (ACPI_FAILURE(status))
-       return_ACPI_STATUS(status);
-
    /* Enable the requested GPE */
+
    status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_ENABLE);
    return_ACPI_STATUS(status);
 }

Leave a Reply

Your email address will not be published. Required fields are marked *