ACPI: fix FADT parsing
authorJan Beulich <jbeulich@novell.com>
Fri, 19 Sep 2008 22:50:32 +0000 (15:50 -0700)
committerLen Brown <len.brown@intel.com>
Fri, 10 Oct 2008 19:31:48 +0000 (15:31 -0400)
commitfcea94ba0773a4bf78d109f2acd72d003f0621f6
treee05362e8dd4b6d941c4761c1945f64b13a4b69da
parent3fa8749e584b55f1180411ab1b51117190bac1e5
ACPI: fix FADT parsing

The (1.0 inherited) separate length fields in the FADT are byte granular.
Further, PM1a/b may have distinct lengths (if using the v2 fields was
okay) and may live in distinct address spaces.  acpi_tb_convert_fadt()
should account for all of these conditions.

Apart from these changes I'm puzzled by the fact that, not just for
acpi_gbl_xpm1{a,b}_enable, acpi_hw_low_level_{read,write}() get an
explicit size passed rather than using the size found in the passed GAS.
What happens on a platform that defines PM1{a,b} wider than 16 bits?  Of
course, acpi_hw_low_level_{read,write}() at present are entirely
un-prepared to deal with sizes other than 8, 16, or 32, not to speak of a
non-zero bit_offset or access_width...

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/tables/tbfadt.c