ACPI: Validate XSDT, use RSDT if XSDT fails
authorZhao Yakui <yakui.zhao@intel.com>
Fri, 24 Aug 2007 08:18:16 +0000 (16:18 +0800)
committerLen Brown <len.brown@intel.com>
Fri, 24 Aug 2007 22:46:25 +0000 (18:46 -0400)
commit9f3119b70cf189530f1b46a006a052e171a1622f
treeb6585a7f8421e7410cb4dd6fbb3770d2fdc800a7
parentb377fd3982ad957c796758a90e2988401a884241
ACPI: Validate XSDT, use RSDT if XSDT fails

ACPI 1.0 used an RSDT with 32-bit physical addresses.
ACPI 2.0 adds an XSDT with 32-bit physical addresses.
An ACPI 2.0 aware OS is supposed to use the XSDT
(when present) instead of the RSDT.

However, several systems have failed because the XSDT
contains NULL entries -- while it is missing pointers
to needed tables, such as SSDTs.

When we find an XSDT with NULL entries, discard it
and use the ACPI 1.0 RSDT instead.

http://bugzilla.kernel.org/show_bug.cgi?id=8630

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/tables/tbutils.c