mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-23 09:56:00 +00:00
Merge branches 'acpica-fixes' and 'acpi-ec-fixes'
* acpica-fixes: Revert "ACPI 2.0 / AML: Improve module level execution by moving the If/Else/While execution to per-table basis" Revert "ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading" Revert "ACPICA: Namespace: Fix namespace/interpreter lock ordering" * acpi-ec-fixes: ACPI / EC: Fix code ordering issue in ec_remove_handlers()
This commit is contained in:
commit
d0420d20ba
@ -1331,8 +1331,6 @@ static int ec_install_handlers(struct acpi_ec *ec)
|
|||||||
|
|
||||||
static void ec_remove_handlers(struct acpi_ec *ec)
|
static void ec_remove_handlers(struct acpi_ec *ec)
|
||||||
{
|
{
|
||||||
acpi_ec_stop(ec, false);
|
|
||||||
|
|
||||||
if (test_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags)) {
|
if (test_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags)) {
|
||||||
if (ACPI_FAILURE(acpi_remove_address_space_handler(ec->handle,
|
if (ACPI_FAILURE(acpi_remove_address_space_handler(ec->handle,
|
||||||
ACPI_ADR_SPACE_EC, &acpi_ec_space_handler)))
|
ACPI_ADR_SPACE_EC, &acpi_ec_space_handler)))
|
||||||
@ -1340,6 +1338,19 @@ static void ec_remove_handlers(struct acpi_ec *ec)
|
|||||||
clear_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags);
|
clear_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Stops handling the EC transactions after removing the operation
|
||||||
|
* region handler. This is required because _REG(DISCONNECT)
|
||||||
|
* invoked during the removal can result in new EC transactions.
|
||||||
|
*
|
||||||
|
* Flushes the EC requests and thus disables the GPE before
|
||||||
|
* removing the GPE handler. This is required by the current ACPICA
|
||||||
|
* GPE core. ACPICA GPE core will automatically disable a GPE when
|
||||||
|
* it is indicated but there is no way to handle it. So the drivers
|
||||||
|
* must disable the GPEs prior to removing the GPE handlers.
|
||||||
|
*/
|
||||||
|
acpi_ec_stop(ec, false);
|
||||||
|
|
||||||
if (test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags)) {
|
if (test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags)) {
|
||||||
if (ACPI_FAILURE(acpi_remove_gpe_handler(NULL, ec->gpe,
|
if (ACPI_FAILURE(acpi_remove_gpe_handler(NULL, ec->gpe,
|
||||||
&acpi_ec_gpe_handler)))
|
&acpi_ec_gpe_handler)))
|
||||||
|
Loading…
Reference in New Issue
Block a user