soc/intel/broadwell: Conditionally skip PRE_GRAPHICS_DELAY

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 <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/48787
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index 66f5447..cd98f07 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -732,6 +732,12 @@
 	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 @@
 	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);