ACPICA: FADT: Favor 32-bit FACS and DSDT addresses
authorBob Moore <robert.moore@intel.com>
Thu, 19 Mar 2009 02:13:40 +0000 (10:13 +0800)
committerLen Brown <len.brown@intel.com>
Fri, 27 Mar 2009 16:11:05 +0000 (12:11 -0400)
If both the 32-bit and 64-bit addresses are non-null, use the
32-bit address. Provides Windows compatibility.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/acpica/tbfadt.c

index f87bfb259ef6b2c4a964a14b3154a53279e98875..71e655d14cb0759a71fff3da12188f6c8a0f0679 100644 (file)
@@ -483,18 +483,22 @@ static void acpi_tb_validate_fadt(void)
            (acpi_gbl_FADT.Xfacs != (u64) acpi_gbl_FADT.facs)) {
                ACPI_WARNING((AE_INFO,
                              "32/64X FACS address mismatch in FADT - "
-                             "two FACS tables! %8.8X/%8.8X%8.8X",
+                             "%8.8X/%8.8X%8.8X, using 32",
                              acpi_gbl_FADT.facs,
                              ACPI_FORMAT_UINT64(acpi_gbl_FADT.Xfacs)));
+
+               acpi_gbl_FADT.Xfacs = (u64) acpi_gbl_FADT.facs;
        }
 
        if (acpi_gbl_FADT.dsdt &&
            (acpi_gbl_FADT.Xdsdt != (u64) acpi_gbl_FADT.dsdt)) {
                ACPI_WARNING((AE_INFO,
                              "32/64X DSDT address mismatch in FADT - "
-                             "two DSDT tables! %8.8X/%8.8X%8.8X",
+                             "%8.8X/%8.8X%8.8X, using 32",
                              acpi_gbl_FADT.dsdt,
                              ACPI_FORMAT_UINT64(acpi_gbl_FADT.Xdsdt)));
+
+               acpi_gbl_FADT.Xdsdt = (u64) acpi_gbl_FADT.dsdt;
        }
 
        /* Examine all of the 64-bit extended address fields (X fields) */