[coreboot] New patch to review for coreboot: 2d9ed13 Don't run VGA option ROMs on S3 resume.

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Tue Mar 6 00:52:40 CET 2012


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/715

-gerrit

commit 2d9ed13c22a4a37b4ef9f30c9e9b1136dff2a9ee
Author: Stefan Reinauer <reinauer at chromium.org>
Date:   Fri Sep 23 10:33:58 2011 -0700

    Don't run VGA option ROMs on S3 resume.
    
    This will save us a few 100 ms on resume.
    
    Change-Id: Iabf4c8ab88662ba41236162f0a6f5bd80d8c1255
    Signed-off-by: Stefan Reinauer <reinauer at google.com>
---
 src/devices/Kconfig      |    7 +++++++
 src/devices/pci_device.c |   11 +++++++++++
 2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/devices/Kconfig b/src/devices/Kconfig
index 9e5ea6e..572addc 100644
--- a/src/devices/Kconfig
+++ b/src/devices/Kconfig
@@ -33,6 +33,13 @@ config VGA_ROM_RUN
 	  Execute VGA option ROMs, if found. This is required to enable
 	  PCI/AGP/PCI-E video cards.
 
+config S3_VGA_ROM_RUN
+	bool "Re-run VGA option ROMs on S3 resume"
+	default y
+	depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
+	help
+	  Execute VGA option ROMs when coming out of an S3 resume.
+
 config PCI_ROM_RUN
 	bool "Run non-VGA option ROMs"
 	default y
diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c
index 2ccb38a..1f36679 100644
--- a/src/devices/pci_device.c
+++ b/src/devices/pci_device.c
@@ -51,6 +51,9 @@
 #if CONFIG_PC80_SYSTEM == 1
 #include <pc80/i8259.h>
 #endif
+#if CONFIG_HAVE_ACPI_RESUME && !CONFIG_S3_VGA_ROM_RUN
+#include <arch/acpi.h>
+#endif
 
 u8 pci_moving_config8(struct device *dev, unsigned int reg)
 {
@@ -672,6 +675,14 @@ void pci_dev_init(struct device *dev)
 	if (ram == NULL)
 		return;
 
+#if !CONFIG_S3_VGA_ROM_RUN
+	/* If S3_VGA_ROM_RUN is disabled, skip running VGA option
+	 * ROMs when coming out of an S3 resume.
+	 */
+	if ((acpi_slp_type == 3) &&
+		((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA))
+		return;
+#endif
 	run_bios(dev, (unsigned long)ram);
 #endif /* CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN */
 }




More information about the coreboot mailing list