nb/intel/*/gma.c: Skip NGI when VGA decode is not enabled

Writes to VGA MEM and IO by NGI are invalid if the IGD is not decoding
them.

Change-Id: I4b9329d14105eb563a0d4aea6ef75ff11febf6df
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/27984
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
diff --git a/src/northbridge/intel/haswell/gma.c b/src/northbridge/intel/haswell/gma.c
index 8ffdce8..8f60da4 100644
--- a/src/northbridge/intel/haswell/gma.c
+++ b/src/northbridge/intel/haswell/gma.c
@@ -468,10 +468,17 @@
 	/* Pre panel init */
 	gma_setup_panel(dev);
 
+	int vga_disable = (pci_read_config16(dev, GGC) & 2) >> 1;
+
 	if (IS_ENABLED(CONFIG_MAINBOARD_USE_LIBGFXINIT)) {
-		printk(BIOS_SPEW, "NATIVE graphics, run native enable\n");
-		gma_gfxinit(&lightup_ok);
-		gfx_set_init_done(1);
+		if (vga_disable) {
+			printk(BIOS_INFO,
+			       "IGD is not decoding legacy VGA MEM and IO: skipping NATIVE graphic init\n");
+		} else {
+			printk(BIOS_SPEW, "NATIVE graphics, run native enable\n");
+			gma_gfxinit(&lightup_ok);
+			gfx_set_init_done(1);
+		}
 	}
 
 	if (! lightup_ok) {