Tobias Diedrich wrote:
Uwe Hermann wrote:
Index: coreboot-svn-p2b/src/arch/i386/boot/acpi.c
--- coreboot-svn-p2b.orig/src/arch/i386/boot/acpi.c 2010-11-27 11:48:28.000000000 +0100 +++ coreboot-svn-p2b/src/arch/i386/boot/acpi.c 2010-11-27 11:48:41.000000000 +0100 @@ -481,7 +481,7 @@
static int acpi_is_wakeup(void) {
- return (acpi_slp_type == 3);
- return (acpi_slp_type == 3 || acpi_slp_type == 2);
Can this have negative effects for other ACPI-enabled chipsets/boards?
No, I grepped the tree and the other chipsets supporting this only ever use 3 (S3). But since S2 is virtually identically to S3 from a wakeup perspective I thought adding the acpi_slp_type == 2 check would be the right thing to do. The other option would be to set acpi_slp_type to 3 even for S2 wakeup, but then there is not much sense in making it '3' either and it could be changed to be a 'is_wakeup_from_sleep' boolean type.
The relevant chipset hits are: northbridge/intel/i945/northbridge.c:256:extern u8 acpi_slp_type; northbridge/intel/i945/northbridge.c:263: acpi_slp_type=0; northbridge/intel/i945/northbridge.c:267: acpi_slp_type=3; northbridge/intel/i945/northbridge.c:271: acpi_slp_type=0; southbridge/intel/i82801gx/i82801gx_lpc.c:171:extern u8 acpi_slp_type; southbridge/via/vt8237r/vt8237r_lpc.c:149:extern u8 acpi_slp_type; southbridge/via/vt8237r/vt8237r_lpc.c:238: acpi_slp_type = ((tmp & (7 << 10)) >> 10) == 1 ? 3 : 0 ; southbridge/via/vt8237r/vt8237r_lpc.c:239: printk(BIOS_DEBUG, "SLP_TYP type was %x %x\n", tmp, acpi_slp_type);
Interestingly i82801gx_lpc.c has the extern but doesn't use it.