summaryrefslogtreecommitdiffstats
path: root/sys/contrib
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2009-06-04 20:48:31 +0000
committerjkim <jkim@FreeBSD.org>2009-06-04 20:48:31 +0000
commit419d50d00de6d079fc426a14d51f3d8cec3a0abd (patch)
treea073a2615b2048d1935fd7b8a363d06ea9572799 /sys/contrib
parent8b4d37b6a77bc5293cb64640e5e438e517676aa3 (diff)
downloadFreeBSD-src-419d50d00de6d079fc426a14d51f3d8cec3a0abd.zip
FreeBSD-src-419d50d00de6d079fc426a14d51f3d8cec3a0abd.tar.gz
Do not install SSDT when DSDT is overriden by user.
Diffstat (limited to 'sys/contrib')
-rw-r--r--sys/contrib/dev/acpica/tables/tbutils.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/contrib/dev/acpica/tables/tbutils.c b/sys/contrib/dev/acpica/tables/tbutils.c
index d492317..28cd8dc 100644
--- a/sys/contrib/dev/acpica/tables/tbutils.c
+++ b/sys/contrib/dev/acpica/tables/tbutils.c
@@ -360,6 +360,21 @@ AcpiTbInstallTable (
return;
}
+ /* Skip SSDT when DSDT is overriden */
+
+ if (ACPI_COMPARE_NAME (MappedTable->Signature, ACPI_SIG_SSDT) &&
+ (AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Flags &
+ ACPI_TABLE_ORIGIN_OVERRIDE))
+ {
+ ACPI_INFO ((AE_INFO,
+ "%4.4s @ 0x%p Table override, replaced with:", ACPI_SIG_SSDT,
+ ACPI_CAST_PTR (void, Address)));
+ AcpiTbPrintTableHeader (
+ AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Address,
+ AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Pointer);
+ goto UnmapAndExit;
+ }
+
/* If a particular signature is expected (DSDT/FACS), it must match */
if (Signature &&
OpenPOWER on IntegriCloud