[coreboot] [patch] mcp55 subsystem setting

Jonathan A. Kollasch jakllsch at kollasch.net
Fri Oct 29 20:00:24 CEST 2010


Use common code to set PCI subsystem in mcp55.

Signed-off-by: Jonathan Kollasch <jakllsch at kollasch.net>
---
-------------- next part --------------
Index: src/southbridge/nvidia/mcp55/mcp55.h
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55.h	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55.h	(working copy)
@@ -26,6 +26,7 @@
 
 #ifndef __PRE_RAM__
 void mcp55_enable(device_t dev);
+extern struct pci_operations mcp55_pci_ops;
 #else
 void enable_fid_change_on_sb(unsigned sbbusn, unsigned sbdn);
 #endif
Index: src/southbridge/nvidia/mcp55/mcp55_sata.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_sata.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_sata.c	(working copy)
@@ -69,15 +69,6 @@
 
 }
 
-static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
-{
-	pci_write_config32(dev, 0x40,
-		((device & 0xffff) << 16) | (vendor & 0xffff));
-}
-static struct pci_operations lops_pci = {
-	.set_subsystem	= lpci_set_subsystem,
-};
-
 static struct device_operations sata_ops = {
 	.read_resources	= pci_dev_read_resources,
 	.set_resources	= pci_dev_set_resources,
@@ -85,7 +76,7 @@
 //	.enable		= mcp55_enable,
 	.init		= sata_init,
 	.scan_bus	= 0,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 };
 
 static const struct pci_driver sata0_driver __pci_driver = {
Index: src/southbridge/nvidia/mcp55/mcp55_smbus.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_smbus.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_smbus.c	(working copy)
@@ -123,15 +123,6 @@
 #endif
 }
 
-static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
-{
-	pci_write_config32(dev, 0x40,
-		((device & 0xffff) << 16) | (vendor & 0xffff));
-}
-
-static struct pci_operations lops_pci = {
-	.set_subsystem	= lpci_set_subsystem,
-};
 static struct device_operations smbus_ops = {
 	.read_resources	= mcp55_sm_read_resources,
 	.set_resources	= pci_dev_set_resources,
@@ -139,7 +130,7 @@
 	.init		= mcp55_sm_init,
 	.scan_bus	= scan_static_bus,
 //	.enable		= mcp55_enable,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 	.ops_smbus_bus	= &lops_smbus_bus,
 };
 static const struct pci_driver smbus_driver __pci_driver = {
Index: src/southbridge/nvidia/mcp55/mcp55_usb.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_usb.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_usb.c	(working copy)
@@ -28,15 +28,6 @@
 #include <device/pci_ops.h>
 #include "mcp55.h"
 
-static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
-{
-	pci_write_config32(dev, 0x40,
-		((device & 0xffff) << 16) | (vendor & 0xffff));
-}
-static struct pci_operations lops_pci = {
-	.set_subsystem	= lpci_set_subsystem,
-};
-
 static struct device_operations usb_ops = {
 	.read_resources	= pci_dev_read_resources,
 	.set_resources	= pci_dev_set_resources,
@@ -44,7 +35,7 @@
 	.init		= 0,
 //	.enable		= mcp55_enable,
 	.scan_bus	= 0,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 };
 
 static const struct pci_driver usb_driver __pci_driver = {
Index: src/southbridge/nvidia/mcp55/mcp55_ide.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_ide.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_ide.c	(working copy)
@@ -69,15 +69,6 @@
 
 }
 
-static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
-{
-	pci_write_config32(dev, 0x40,
-		((device & 0xffff) << 16) | (vendor & 0xffff));
-}
-static struct pci_operations lops_pci = {
-	.set_subsystem	= lpci_set_subsystem,
-};
-
 static struct device_operations ide_ops  = {
 	.read_resources	= pci_dev_read_resources,
 	.set_resources	= pci_dev_set_resources,
@@ -85,7 +76,7 @@
 	.init		= ide_init,
 	.scan_bus	= 0,
 //	.enable		= mcp55_enable,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 };
 
 static const struct pci_driver ide_driver __pci_driver = {
Index: src/southbridge/nvidia/mcp55/mcp55_nic.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_nic.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_nic.c	(working copy)
@@ -180,16 +180,6 @@
 
 }
 
-static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
-{
-	pci_write_config32(dev, 0x40,
-		((device & 0xffff) << 16) | (vendor & 0xffff));
-}
-
-static struct pci_operations lops_pci = {
-	.set_subsystem	= lpci_set_subsystem,
-};
-
 static struct device_operations nic_ops  = {
 	.read_resources	= pci_dev_read_resources,
 	.set_resources	= pci_dev_set_resources,
@@ -197,7 +187,7 @@
 	.init		= nic_init,
 	.scan_bus	= 0,
 //	.enable		= mcp55_enable,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 };
 static const struct pci_driver nic_driver __pci_driver = {
 	.ops	= &nic_ops,
Index: src/southbridge/nvidia/mcp55/mcp55_ht.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_ht.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_ht.c	(working copy)
@@ -28,22 +28,13 @@
 #include <device/pci_ops.h>
 #include "mcp55.h"
 
-static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
-{
-	pci_write_config32(dev, 0x40,
-		((device & 0xffff) << 16) | (vendor & 0xffff));
-}
-static struct pci_operations lops_pci = {
-	.set_subsystem	= lpci_set_subsystem,
-};
-
 static struct device_operations ht_ops  = {
 	.read_resources	= pci_dev_read_resources,
 	.set_resources	= pci_dev_set_resources,
 	.enable_resources	= pci_dev_enable_resources,
 	.init		= 0,
 	.scan_bus	= 0,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 };
 
 static const struct pci_driver ht_driver __pci_driver = {
Index: src/southbridge/nvidia/mcp55/mcp55_pci.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_pci.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_pci.c	(working copy)
@@ -85,10 +85,6 @@
 	pci_write_config32(dev, 0x50, dword);	/* TOM */
 }
 
-static struct pci_operations lops_pci = {
-	.set_subsystem	= 0,
-};
-
 static struct device_operations pci_ops  = {
 	.read_resources	= pci_bus_read_resources,
 	.set_resources	= pci_dev_set_resources,
@@ -97,7 +93,6 @@
 	.scan_bus	= pci_scan_bridge,
 //	.enable		= mcp55_enable,
 	.reset_bus	= pci_bus_reset,
-	.ops_pci	= &lops_pci,
 };
 
 static const struct pci_driver pci_driver __pci_driver = {
Index: src/southbridge/nvidia/mcp55/mcp55_usb2.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_usb2.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_usb2.c	(working copy)
@@ -62,15 +62,6 @@
 
 }
 
-static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
-{
-	pci_write_config32(dev, 0x40,
-		((device & 0xffff) << 16) | (vendor & 0xffff));
-}
-static struct pci_operations lops_pci = {
-	.set_subsystem	= lpci_set_subsystem,
-};
-
 static struct device_operations usb2_ops  = {
 	.read_resources	= pci_dev_read_resources,
 	.set_resources	= usb2_set_resources,
@@ -78,7 +69,7 @@
 	.init		= usb2_init,
 //	.enable		= mcp55_enable,
 	.scan_bus	= 0,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 };
 
 static const struct pci_driver usb2_driver __pci_driver = {
Index: src/southbridge/nvidia/mcp55/mcp55_lpc.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_lpc.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_lpc.c	(working copy)
@@ -253,16 +253,6 @@
 	mcp55_lpc_enable_childrens_resources(dev);
 }
 
-static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
-{
-	pci_write_config32(dev, 0x40,
-		((device & 0xffff) << 16) | (vendor & 0xffff));
-}
-
-static struct pci_operations lops_pci = {
-	.set_subsystem	= lpci_set_subsystem,
-};
-
 static struct device_operations lpc_ops  = {
 	.read_resources	= mcp55_lpc_read_resources,
 	.set_resources	= pci_dev_set_resources,
@@ -270,7 +260,7 @@
 	.init		= lpc_init,
 	.scan_bus	= scan_static_bus,
 //	.enable		= mcp55_enable,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 };
 static const struct pci_driver lpc_driver __pci_driver = {
 	.ops	= &lpc_ops,
@@ -316,7 +306,7 @@
 	.enable_resources	= pci_dev_enable_resources,
 	.init		= lpc_slave_init,
 //	.enable		= mcp55_enable,
-	.ops_pci	= &lops_pci,
+	.ops_pci	= &mcp55_pci_ops,
 };
 
 static const struct pci_driver lpc_driver_slave __pci_driver = {
Index: src/southbridge/nvidia/mcp55/mcp55.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55.c	(working copy)
@@ -242,6 +242,16 @@
 
 }
 
+static void mcp55_set_subsystem(device_t dev, unsigned vendor, unsigned device)
+{
+	pci_write_config32(dev, 0x40,
+			   ((device & 0xffff) << 16) | (vendor & 0xffff));
+}
+
+struct pci_operations mcp55_pci_ops = {
+	.set_subsystem = mcp55_set_subsystem,
+}; 
+
 struct chip_operations southbridge_nvidia_mcp55_ops = {
 	CHIP_NAME("NVIDIA MCP55 Southbridge")
 	.enable_dev	= mcp55_enable,
Index: src/southbridge/nvidia/mcp55/mcp55_pcie.c
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_pcie.c	(revision 6001)
+++ src/southbridge/nvidia/mcp55/mcp55_pcie.c	(working copy)
@@ -42,10 +42,6 @@
 
 }
 
-static struct pci_operations lops_pci = {
-	.set_subsystem	= 0,
-};
-
 static struct device_operations pcie_ops  = {
 	.read_resources	= pci_bus_read_resources,
 	.set_resources	= pci_dev_set_resources,
@@ -53,7 +49,6 @@
 	.init		= pcie_init,
 	.scan_bus	= pci_scan_bridge,
 //	.enable		= mcp55_enable,
-	.ops_pci	= &lops_pci,
 };
 
 static const struct pci_driver pciebc_driver __pci_driver = {


More information about the coreboot mailing list