From aa89e2de03d7673d6068cc24a043639fdcacb93e Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Thu, 31 Dec 2015 16:36:38 -0500 Subject: [PATCH] ACPI: Use AcpiGbl_OverrideDefaultRegionHandlers and do the init ourselves. May help with the recent boot failures, according to a post on the ACPICA-dev mailing list. --- .../kernel/bus_managers/acpi/BusManager.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/add-ons/kernel/bus_managers/acpi/BusManager.cpp b/src/add-ons/kernel/bus_managers/acpi/BusManager.cpp index 48254f76d6..5c65f87d10 100644 --- a/src/add-ons/kernel/bus_managers/acpi/BusManager.cpp +++ b/src/add-ons/kernel/bus_managers/acpi/BusManager.cpp @@ -185,6 +185,7 @@ acpi_std_ops(int32 op,...) void *settings; bool acpiDisabled = false; AcpiGbl_CopyDsdtLocally = true; + AcpiGbl_OverrideDefaultRegionHandlers = true; settings = load_driver_settings("kernel"); if (settings != NULL) { @@ -223,6 +224,25 @@ acpi_std_ops(int32 op,...) "AcpiInitializeSubsystem failed")) goto err; + /* Install the default address space handlers. */ + if (checkAndLogFailure(AcpiInstallAddressSpaceHandler( + ACPI_ROOT_OBJECT, ACPI_ADR_SPACE_SYSTEM_MEMORY, + ACPI_DEFAULT_HANDLER, NULL, NULL), + "Could not initialise SystemMemory handler:")) + goto err; + + if (checkAndLogFailure(AcpiInstallAddressSpaceHandler( + ACPI_ROOT_OBJECT, ACPI_ADR_SPACE_SYSTEM_IO, + ACPI_DEFAULT_HANDLER, NULL, NULL), + "Could not initialise SystemIO handler:")) + goto err; + + if (checkAndLogFailure(AcpiInstallAddressSpaceHandler( + ACPI_ROOT_OBJECT, ACPI_ADR_SPACE_PCI_CONFIG, + ACPI_DEFAULT_HANDLER, NULL, NULL), + "Could not initialise PciConfig handler:")) + goto err; + if (checkAndLogFailure(AcpiInitializeTables(NULL, 0, TRUE), "AcpiInitializeTables failed")) goto err;