[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