ACPI: Validate XSDT, use RSDT if XSDT fails
commit51718d505589b59a4bb4dc2a6de5ae2402972a17
authorZhao Yakui <yakui.zhao@intel.com>
Fri, 24 Aug 2007 08:18:16 +0000 (24 16:18 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 26 Sep 2007 17:54:38 +0000 (26 10:54 -0700)
treeed3e87dded80de5f86c719b932933ce4dc80aeb6
parent0e22438a5adfdf32b3bb1c75c81c01a29fba9770
ACPI: Validate XSDT, use RSDT if XSDT fails

commit 9f3119b70cf189530f1b46a006a052e171a1622f in mainline.

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>
Cc: Vincet Fortier <Vincent.Fortier1@EC.GC.CA>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/acpi/tables/tbutils.c