nb/intel/sandybridge: Hide additional nb devices

Hide device 4 and device 7 if disabled.
Allows devicetree settings to take effect.

Tested on Lenovo T430.

Change-Id: I64a19e2bbdb1640e1d732f6e4486f73cbb0bda81
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/19689
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
diff --git a/src/northbridge/intel/sandybridge/northbridge.c b/src/northbridge/intel/sandybridge/northbridge.c
index 562e7f2..5c5f41a 100644
--- a/src/northbridge/intel/sandybridge/northbridge.c
+++ b/src/northbridge/intel/sandybridge/northbridge.c
@@ -357,11 +357,21 @@
 		printk(BIOS_DEBUG, "Disabling IGD.\n");
 		reg &= ~DEVEN_IGD;
 	}
+	dev = dev_find_slot(0, PCI_DEVFN(4, 0));
+	if (!dev || !dev->enabled) {
+		printk(BIOS_DEBUG, "Disabling Device 4.\n");
+		reg &= ~DEVEN_D4EN;
+	}
 	dev = dev_find_slot(0, PCI_DEVFN(6, 0));
 	if (!dev || !dev->enabled) {
 		printk(BIOS_DEBUG, "Disabling PEG60.\n");
 		reg &= ~DEVEN_PEG60;
 	}
+	dev = dev_find_slot(0, PCI_DEVFN(7, 0));
+	if (!dev || !dev->enabled) {
+		printk(BIOS_DEBUG, "Disabling Device 7.\n");
+		reg &= ~DEVEN_D7EN;
+	}
 
 	dev = dev_find_slot(0, PCI_DEVFN(0, 0));
 	pci_write_config32(dev, DEVEN, reg);
diff --git a/src/northbridge/intel/sandybridge/sandybridge.h b/src/northbridge/intel/sandybridge/sandybridge.h
index 8d2ae85..bc659be 100644
--- a/src/northbridge/intel/sandybridge/sandybridge.h
+++ b/src/northbridge/intel/sandybridge/sandybridge.h
@@ -75,7 +75,9 @@
 #define GGC		0x50			/* GMCH Graphics Control */
 
 #define DEVEN		0x54			/* Device Enable */
+#define  DEVEN_D7EN	(1 << 14)
 #define  DEVEN_PEG60	(1 << 13)
+#define  DEVEN_D4EN	(1 << 7)
 #define  DEVEN_IGD	(1 << 4)
 #define  DEVEN_PEG10	(1 << 3)
 #define  DEVEN_PEG11	(1 << 2)