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 #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 #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 = {