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

Zhang Rui linux-thinkpad@linux-thinkpad.org
Thu, 13 Nov 2008 16:27:09 +0800


On Thu, 2008-11-13 at 10:24 +0800, Matthew Garrett wrote:
> 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.
> 
do you mean always using FADT1.facs and ignore the FADT.Xfacs in Linux?

thanks,
rui