From d096a64bcd8383e074809ab62b08d270ab688456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Wed, 20 Mar 2019 09:46:32 +0200 Subject: sb/broadcom/bcm5785: Consolidate PCI set_subsystem() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This one uses vendor-specific register for the write. Change-Id: Ie36a87314054d00daed6a63b495bd5f5eabef66e Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/31989 Tested-by: build bot (Jenkins) Reviewed-by: Subrata Banik --- src/southbridge/broadcom/bcm5785/bcm5785.c | 7 +++++++ src/southbridge/broadcom/bcm5785/bcm5785.h | 4 ++++ src/southbridge/broadcom/bcm5785/ide.c | 9 +-------- src/southbridge/broadcom/bcm5785/lpc.c | 9 +-------- src/southbridge/broadcom/bcm5785/sata.c | 9 +-------- src/southbridge/broadcom/bcm5785/usb.c | 9 +-------- 6 files changed, 15 insertions(+), 32 deletions(-) (limited to 'src/southbridge') 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 #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 = { -- cgit v1.2.3