We have just split the AcpiSetFirmwareWakingVector into 2 interfaces -- one interface to set the 32-bit vector (and clear the 64-bit vector), and another interface to set the 64-bit vector (and clear the 32-bit vector.) See: http://www.acpica.org/bugzilla/show_bug.cgi?id=731 the new code is available at the acpica.org git. Bob >-----Original Message----- >From: Zhang, Rui >Sent: Monday, October 13, 2008 1:11 AM >To: Len Brown >Cc: linux-acpi; Moore, Robert; Rafael J. Wysocki; Zhang, Rui >Subject: [PATCH 5/6] ACPI: set waking vector in inactive facs table > > >RSDT and XSDT may export different FACS tables. >Some of the BIOSes only checks one of them when resuming. >And Linux reboots instead of resuming because BIOS can't find >the waking vector. >For example, >I have a platform 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. > ��.n��������+%������w��{.n�����{�����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f