diff options
author | Patrick Georgi <patrick.georgi@secunet.com> | 2011-02-03 09:14:40 +0000 |
---|---|---|
committer | Patrick Georgi <patrick.georgi@coresystems.de> | 2011-02-03 09:14:40 +0000 |
commit | 87fcffac82a4e3b24e152678e73cd7e6c2f1dcad (patch) | |
tree | 20bced90e5a3a025fc1e42bbd731d4296c11b5d3 /src | |
parent | 539500ee3373b91985aec9749ae35fb5a94e1c51 (diff) |
Wrap CONFIG_MAINBOARD_PCI_SUBSYSTEM_{VENDOR,DEVICE}_ID in weak functions
This is so that boards can determine them on runtime based on hardware
properties, if so desired.
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
Acked-by: Joseph Kellermann <Joseph.Kellermann@heitec.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6329 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/pci_device.c | 18 | ||||
-rw-r--r-- | src/include/device/pci.h | 3 | ||||
-rw-r--r-- | src/southbridge/intel/i82801gx/pci.c | 8 |
3 files changed, 21 insertions, 8 deletions
diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c index 0b39faa8b2..b6a8078be7 100644 --- a/src/devices/pci_device.c +++ b/src/devices/pci_device.c @@ -586,6 +586,16 @@ void pci_dev_set_resources(struct device *dev) pci_write_config8(dev, PCI_CACHE_LINE_SIZE, 64 >> 2); } +unsigned __attribute__((weak)) mainboard_pci_subsystem_vendor_id(__attribute__((unused)) struct device *dev) +{ + return CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID; +} + +unsigned __attribute__((weak)) mainboard_pci_subsystem_device_id(__attribute__((unused)) struct device *dev) +{ + return CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID; +} + void pci_dev_enable_resources(struct device *dev) { const struct pci_operations *ops; @@ -595,11 +605,11 @@ void pci_dev_enable_resources(struct device *dev) ops = ops_pci(dev); if (dev->on_mainboard && ops && ops->set_subsystem) { printk(BIOS_DEBUG, "%s subsystem <- %02x/%02x\n", dev_path(dev), - CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID, - CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID); + mainboard_pci_subsystem_vendor_id(dev), + mainboard_pci_subsystem_device_id(dev)); ops->set_subsystem(dev, - CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID, - CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID); + mainboard_pci_subsystem_vendor_id(dev), + mainboard_pci_subsystem_device_id(dev)); } command = pci_read_config16(dev, PCI_COMMAND); command |= dev->command; diff --git a/src/include/device/pci.h b/src/include/device/pci.h index 6af723d745..d4cfb8558c 100644 --- a/src/include/device/pci.h +++ b/src/include/device/pci.h @@ -103,4 +103,7 @@ static inline const struct pci_bus_operations *ops_pci_bus(struct bus *bus) return bops; } +unsigned mainboard_pci_subsystem_vendor_id(struct device *dev); +unsigned mainboard_pci_subsystem_device_id(struct device *dev); + #endif /* PCI_H */ diff --git a/src/southbridge/intel/i82801gx/pci.c b/src/southbridge/intel/i82801gx/pci.c index 4c44e1e153..a8e8988d57 100644 --- a/src/southbridge/intel/i82801gx/pci.c +++ b/src/southbridge/intel/i82801gx/pci.c @@ -73,11 +73,11 @@ static void ich_pci_dev_enable_resources(struct device *dev) if (dev->on_mainboard && ops && ops->set_subsystem) { printk(BIOS_DEBUG, "%s subsystem <- %02x/%02x\n", dev_path(dev), - CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID, - CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID); + mainboard_pci_subsystem_vendor_id(dev), + mainboard_pci_subsystem_device_id(dev)); ops->set_subsystem(dev, - CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID, - CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID); + mainboard_pci_subsystem_vendor_id(dev), + mainboard_pci_subsystem_device_id(dev)); } command = pci_read_config16(dev, PCI_COMMAND); |