diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2019-03-20 09:46:32 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-03-22 12:21:05 +0000 |
commit | d096a64bcd8383e074809ab62b08d270ab688456 (patch) | |
tree | 2756c26360db62daa75ff6ee8041c489e2a69ffb /src/southbridge | |
parent | 321bce4a3f472cfcd1f9af12e0204f6648ce499e (diff) |
sb/broadcom/bcm5785: Consolidate PCI set_subsystem()
This one uses vendor-specific register for the write.
Change-Id: Ie36a87314054d00daed6a63b495bd5f5eabef66e
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/31989
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Diffstat (limited to 'src/southbridge')
-rw-r--r-- | src/southbridge/broadcom/bcm5785/bcm5785.c | 7 | ||||
-rw-r--r-- | src/southbridge/broadcom/bcm5785/bcm5785.h | 4 | ||||
-rw-r--r-- | src/southbridge/broadcom/bcm5785/ide.c | 9 | ||||
-rw-r--r-- | src/southbridge/broadcom/bcm5785/lpc.c | 9 | ||||
-rw-r--r-- | src/southbridge/broadcom/bcm5785/sata.c | 9 | ||||
-rw-r--r-- | src/southbridge/broadcom/bcm5785/usb.c | 9 |
6 files changed, 15 insertions, 32 deletions
diff --git a/src/southbridge/broadcom/bcm5785/bcm5785.c b/src/southbridge/broadcom/bcm5785/bcm5785.c index beaa94aeef..50d13b030b 100644 --- a/src/southbridge/broadcom/bcm5785/bcm5785.c +++ b/src/southbridge/broadcom/bcm5785/bcm5785.c @@ -86,6 +86,13 @@ void bcm5785_enable(struct device *dev) #endif } +void bcm5785_set_subsystem(struct device *dev, unsigned int vendor, + unsigned int device) +{ + pci_write_config32(dev, 0x40, + ((device & 0xffff) << 16) | (vendor & 0xffff)); +} + struct chip_operations southbridge_broadcom_bcm5785_ops = { CHIP_NAME("Serverworks BCM5785 Southbridge") .enable_dev = bcm5785_enable, diff --git a/src/southbridge/broadcom/bcm5785/bcm5785.h b/src/southbridge/broadcom/bcm5785/bcm5785.h index f1af15326c..4517ddad0c 100644 --- a/src/southbridge/broadcom/bcm5785/bcm5785.h +++ b/src/southbridge/broadcom/bcm5785/bcm5785.h @@ -17,6 +17,7 @@ #ifndef BCM5785_H #define BCM5785_H +#include <device/device.h> #include "chip.h" #ifndef __PRE_RAM__ @@ -25,6 +26,9 @@ void bcm5785_enable(struct device *dev); void enable_fid_change_on_sb(unsigned sbbusn, unsigned sbdn); #endif +void bcm5785_set_subsystem(struct device *dev, unsigned int vendor, + unsigned int device); + void ldtstop_sb(void); #endif /* BCM5785_H */ diff --git a/src/southbridge/broadcom/bcm5785/ide.c b/src/southbridge/broadcom/bcm5785/ide.c index c96fc613fe..2932a236bb 100644 --- a/src/southbridge/broadcom/bcm5785/ide.c +++ b/src/southbridge/broadcom/bcm5785/ide.c @@ -35,15 +35,8 @@ static void ide_init(struct device *dev) { } -static void lpci_set_subsystem(struct device *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, + .set_subsystem = bcm5785_set_subsystem, }; static struct device_operations ide_ops = { diff --git a/src/southbridge/broadcom/bcm5785/lpc.c b/src/southbridge/broadcom/bcm5785/lpc.c index a091e9ff54..17bc8bce88 100644 --- a/src/southbridge/broadcom/bcm5785/lpc.c +++ b/src/southbridge/broadcom/bcm5785/lpc.c @@ -115,15 +115,8 @@ static void bcm5785_lpc_enable_resources(struct device *dev) bcm5785_lpc_enable_childrens_resources(dev); } -static void lpci_set_subsystem(struct device *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, + .set_subsystem = bcm5785_set_subsystem, }; static struct device_operations lpc_ops = { diff --git a/src/southbridge/broadcom/bcm5785/sata.c b/src/southbridge/broadcom/bcm5785/sata.c index 4a9425d465..cdd4295531 100644 --- a/src/southbridge/broadcom/bcm5785/sata.c +++ b/src/southbridge/broadcom/bcm5785/sata.c @@ -68,15 +68,8 @@ static void sata_init(struct device *dev) } } -static void lpci_set_subsystem(struct device *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, + .set_subsystem = bcm5785_set_subsystem, }; static struct device_operations sata_ops = { diff --git a/src/southbridge/broadcom/bcm5785/usb.c b/src/southbridge/broadcom/bcm5785/usb.c index 4929250067..ef374ad482 100644 --- a/src/southbridge/broadcom/bcm5785/usb.c +++ b/src/southbridge/broadcom/bcm5785/usb.c @@ -32,15 +32,8 @@ static void usb_init(struct device *dev) } -static void lpci_set_subsystem(struct device *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, + .set_subsystem = bcm5785_set_subsystem, }; static struct device_operations usb_ops = { |