From 0f30063abf4fa29ba6671dcbab7879334f7bd013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Sat, 19 Dec 2020 23:43:56 +0200 Subject: soc/intel/broadwell: Conditionally skip PRE_GRAPHICS_DELAY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was commented that the need for the delay was mainly related to external displays and only with VBIOS execution. Move the delay such that it is done only when we actually need to execute the VBIOS aka option rom. A delay is currently only defined for librem/purism_bdw in its Kconfig. As the description of the issue sounds like it would equally happen on other platforms when VBIOS is involved, promote the Kconfig visible option to global scope. Change-Id: I4503158576f35057373f003586bbf76af4d59b3d Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/48787 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- src/device/pci_device.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/device/pci_device.c') diff --git a/src/device/pci_device.c b/src/device/pci_device.c index 66f5447126..cd98f07605 100644 --- a/src/device/pci_device.c +++ b/src/device/pci_device.c @@ -732,6 +732,12 @@ static int should_load_oprom(struct device *dev) return 0; } +static void oprom_pre_graphics_stall(void) +{ + if (CONFIG_PRE_GRAPHICS_DELAY) + mdelay(CONFIG_PRE_GRAPHICS_DELAY); +} + /** Default handler: only runs the relevant PCI BIOS. */ void pci_dev_init(struct device *dev) { @@ -760,6 +766,9 @@ void pci_dev_init(struct device *dev) if (!should_run_oprom(dev, rom)) return; + /* Wait for any configured pre-graphics delay */ + oprom_pre_graphics_stall(); + run_bios(dev, (unsigned long)ram); gfx_set_init_done(1); -- cgit v1.2.3