summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2019-03-20 09:46:32 +0200
committerPatrick Georgi <pgeorgi@google.com>2019-03-22 12:21:05 +0000
commitd096a64bcd8383e074809ab62b08d270ab688456 (patch)
tree2756c26360db62daa75ff6ee8041c489e2a69ffb /src
parent321bce4a3f472cfcd1f9af12e0204f6648ce499e (diff)
downloadcoreboot-d096a64bcd8383e074809ab62b08d270ab688456.tar.xz
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')
-rw-r--r--src/southbridge/broadcom/bcm5785/bcm5785.c7
-rw-r--r--src/southbridge/broadcom/bcm5785/bcm5785.h4
-rw-r--r--src/southbridge/broadcom/bcm5785/ide.c9
-rw-r--r--src/southbridge/broadcom/bcm5785/lpc.c9
-rw-r--r--src/southbridge/broadcom/bcm5785/sata.c9
-rw-r--r--src/southbridge/broadcom/bcm5785/usb.c9
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 = {