diff options
author | Zhao Yakui <yakui.zhao@intel.com> | 2008-12-17 03:55:18 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-01-09 01:41:58 -0500 |
commit | 237889bf0a62f1399fb2ba0c2a259e6a96597131 (patch) | |
tree | 248d6bf6e4e60c8760b9a2b6ba2e788b70e24c76 /drivers/acpi | |
parent | 13b40a1a065824d2d4e55c8b48ea9f3f9d162929 (diff) |
ACPI : Use RSDT instead of XSDT by adding boot option of "acpi=rsdt"
On some boxes there exist both RSDT and XSDT table. But unfortunately
sometimes there exists the following error when XSDT table is used:
a. 32/64X address mismatch
b. The 32/64X FACS address mismatch
In such case the boot option of "acpi=rsdt" is provided so that
RSDT is tried instead of XSDT table when the system can't work well.
http://bugzilla.kernel.org/show_bug.cgi?id=8246
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
cc:Thomas Renninger <trenn@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/tables/tbutils.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/acpi/tables/tbutils.c b/drivers/acpi/tables/tbutils.c index 0cc92ef5236f..da9f240186e8 100644 --- a/drivers/acpi/tables/tbutils.c +++ b/drivers/acpi/tables/tbutils.c | |||
@@ -420,7 +420,8 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags) | |||
420 | 420 | ||
421 | /* Differentiate between RSDT and XSDT root tables */ | 421 | /* Differentiate between RSDT and XSDT root tables */ |
422 | 422 | ||
423 | if (rsdp->revision > 1 && rsdp->xsdt_physical_address) { | 423 | if (rsdp->revision > 1 && rsdp->xsdt_physical_address |
424 | && !acpi_rsdt_forced) { | ||
424 | /* | 425 | /* |
425 | * Root table is an XSDT (64-bit physical addresses). We must use the | 426 | * Root table is an XSDT (64-bit physical addresses). We must use the |
426 | * XSDT if the revision is > 1 and the XSDT pointer is present, as per | 427 | * XSDT if the revision is > 1 and the XSDT pointer is present, as per |