[ltp] Re: [Devel] Re: [RESEND] [PATCH 2/3] Introduce acpi_root_table=rsdt boot param and dmi list to force rsdt

Matthew Garrett linux-thinkpad@linux-thinkpad.org
Thu, 13 Nov 2008 02:24:09 +0000


On Thu, Nov 13, 2008 at 10:21:00AM +0800, Zhang Rui wrote:
> I have a test box which suspends well, but always reboots instead of
> resuming when pressing the power button.
> I found that there are two FACS tables on this platform,
> XSDT-->FADT1-->Xfacs------>FACS1
> 	|----->facs-----|
> 			|->FACS2
> RSDT-->FADT2-->facs-----|
> Linux uses XSDT on this platform and sets the waking vector in FACS1
> when suspending. But it seems that the BIOS only cares for the waking
> vector in FACS2, thus it reboots when resuming because the waking vector
> is not set at all.

That makes it sound like we should be using the 32-bit value in this 
case as well.

> My original proposal is to install both FADT1.Xfacs and FADT1.facs in to
> the global table list and set the waking vectors on both of them.
> now it seems that switching back to RSDT if multiple valid FACS tables
> exists is also a solution for this issue.

Why? If there's a FADT entry in the XSDT we might as well use it - all 
the machines I've checked contain valid information in the 32-bit entry 
of the FADT there.

-- 
Matthew Garrett | mjg59@srcf.ucam.org