public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH]: ACPI : Set 32bit and 64bit waking vector in FCAS table
@ 2008-09-04  5:51 Zhao Yakui
  2008-09-04  8:10 ` Rafael J. Wysocki
  0 siblings, 1 reply; 21+ messages in thread
From: Zhao Yakui @ 2008-09-04  5:51 UTC (permalink / raw)
  To: lenb; +Cc: linux-acpi, andi

Subject: ACPI : Set 32bit and 64bit waking vector in FCAS table
From: Zhao Yakui <yakui.zhao@intel.com>

    On some laptops only the 64bit waking vecotr is set for ACPI 2.0 FACS.
But when the system is resumed, BIOS will transfer control directly to 
32bit waking vector. In such case the system can't be resumed correctly.
    Maybe it will be more appropriate that both the 32bit and 64bit waking 
vector will be set for the ACPI 2.0 FACS when the system enters the S3 
sleeping state.

 http://bugzilla.kernel.org/show_bug.cgi?id=11368

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
---
 drivers/acpi/hardware/hwsleep.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

Index: linux-2.6/drivers/acpi/hardware/hwsleep.c
===================================================================
--- linux-2.6.orig/drivers/acpi/hardware/hwsleep.c
+++ linux-2.6/drivers/acpi/hardware/hwsleep.c
@@ -80,14 +80,14 @@ acpi_set_firmware_waking_vector(acpi_phy
 
 	/* Set the vector */
 
-	if ((facs->length < 32) || (!(facs->xfirmware_waking_vector))) {
-		/*
-		 * ACPI 1.0 FACS or short table or optional X_ field is zero
-		 */
-		facs->firmware_waking_vector = (u32) physical_address;
-	} else {
+	/* 32 Bit wakeing vector is always set */
+	facs->firmware_waking_vector = (u32) physical_address;
+
+	if (facs->length >= 32) {
 		/*
-		 * ACPI 2.0 FACS with valid X_ field
+		 * ACPI 2.0 FACS with the valid X_filed. Its length
+		 * will be more than 32 bytes. In such case the 64 bit
+		 * waking vector is also set.
 		 */
 		facs->xfirmware_waking_vector = physical_address;
 	}



^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2008-09-24  7:17 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-04  5:51 [PATCH]: ACPI : Set 32bit and 64bit waking vector in FCAS table Zhao Yakui
2008-09-04  8:10 ` Rafael J. Wysocki
2008-09-04  9:18   ` Zhang Rui
2008-09-04  9:37     ` Rafael J. Wysocki
2008-09-04 12:07       ` Matthew Garrett
2008-09-05  1:17         ` Zhao Yakui
2008-09-05  1:21           ` Li, Shaohua
2008-09-05 10:48             ` Rafael J. Wysocki
2008-09-06 11:13             ` [PATCH] ACPI suspend: Always use the 32-bit waking vector Rafael J. Wysocki
2008-09-14 11:46               ` Pavel Machek
2008-09-14 23:56                 ` Rafael J. Wysocki
2008-09-15  9:50               ` Pavel Machek
2008-09-17  5:46                 ` Rafael J. Wysocki
2008-09-17  7:29                   ` Pavel Machek
2008-09-15 11:18               ` ACPI suspend: test 64-bit waking vector (was Re: [PATCH] ACPI suspend: Always use the 32-bit waking vector) Pavel Machek
2008-09-17  5:45                 ` Rafael J. Wysocki
2008-09-17  7:28                   ` Pavel Machek
2008-09-17 16:58                     ` Rafael J. Wysocki
2008-09-24  7:17               ` [PATCH] ACPI suspend: Always use the 32-bit waking vector Len Brown
2008-09-04  9:27   ` [PATCH]: ACPI : Set 32bit and 64bit waking vector in FCAS table Zhao Yakui
2008-09-04  9:48     ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox