i82801gx: enable ACPI during S3 resume
authorSven Schnelle <svens@stackframe.org>
Sun, 5 Jun 2011 09:39:12 +0000 (11:39 +0200)
committerSven Schnelle <svens@stackframe.org>
Tue, 7 Jun 2011 20:11:46 +0000 (22:11 +0200)
disabling ACPI during S3 wakeup breaks ACPI wakeup, as the
Host OS is assuming that ACPI is enabled.

Change-Id: I8ced72c4b553d41a57f26d64998118e8a77621f8
Signed-off-by: Sven Schnelle <svens@stackframe.org>
Reviewed-on: http://review.coreboot.org/7
Tested-by: build bot (Jenkins)
src/southbridge/intel/i82801gx/lpc.c

index 394f161f95e3d824fc75417718e461edc75dbce8..b4b2f413779ec631e26fa7927588ac6eeba267e6 100644 (file)
@@ -341,6 +341,7 @@ static void i82801gx_lock_smm(struct device *dev)
        u8 reg8;
 #endif
 
+       if (acpi_slp_type != 3) {
 #if ENABLE_ACPI_MODE_IN_COREBOOT
                printk(BIOS_DEBUG, "Enabling ACPI via APMC:\n");
                outb(APM_CNT_ACPI_ENABLE, APM_CNT); // Enable ACPI mode
@@ -350,6 +351,10 @@ static void i82801gx_lock_smm(struct device *dev)
                outb(APM_CNT_ACPI_DISABLE, APM_CNT); // Disable ACPI mode
                printk(BIOS_DEBUG, "done.\n");
 #endif
+       } else {
+               printk(BIOS_DEBUG, "S3 wakeup, enabling ACPI via APMC\n");
+               outb(APM_CNT_ACPI_ENABLE, APM_CNT);
+       }
        /* Don't allow evil boot loaders, kernels, or
         * userspace applications to deceive us:
         */