summaryrefslogtreecommitdiff
path: root/src/device
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2015-03-18 13:09:47 +0200
committerKyösti Mälkki <kyosti.malkki@gmail.com>2015-06-04 11:21:42 +0200
commitde271a8f0a9b5d910ee98eeea25f71d4e1536f73 (patch)
treecb3218dd2864940f229b2ec56c24b5cdbde7994d /src/device
parent757c8b485bfb3389142d4c4cbafa3fb319cf4d3c (diff)
downloadcoreboot-de271a8f0a9b5d910ee98eeea25f71d4e1536f73.tar.xz
PCI subsystem: Drop parameter max from scan_bus
Change-Id: Ib33d3363c8d42fa54ac07c11a7ab2bc7ee4ae8bf Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/8539 Tested-by: build bot (Jenkins) Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/device')
-rw-r--r--src/device/hypertransport.c9
-rw-r--r--src/device/pci_device.c24
-rw-r--r--src/device/pciexp_device.c7
3 files changed, 16 insertions, 24 deletions
diff --git a/src/device/hypertransport.c b/src/device/hypertransport.c
index 84b1aa7f63..799038c5ed 100644
--- a/src/device/hypertransport.c
+++ b/src/device/hypertransport.c
@@ -488,11 +488,9 @@ end_of_chain:
* @param bus TODO
* @param min_devfn TODO
* @param max_devfn TODO
- * @param max The highest bus number assigned up to now.
- * @return The maximum bus number found, after scanning all subordinate busses.
*/
-static unsigned int hypertransport_scan_chain_x(struct bus *bus,
- unsigned int min_devfn, unsigned int max_devfn, unsigned int max)
+static void hypertransport_scan_chain_x(struct bus *bus,
+ unsigned int min_devfn, unsigned int max_devfn)
{
unsigned int ht_unitid_base[4];
unsigned int offset_unitid = 1;
@@ -501,8 +499,7 @@ static unsigned int hypertransport_scan_chain_x(struct bus *bus,
ht_unitid_base, offset_unitid);
/* Now that nothing is overlapping it is safe to scan the children. */
- bus->subordinate = pci_scan_bus(bus, 0x00, ((next_unitid - 1) << 3) | 7, bus->secondary);
- return bus->subordinate;
+ pci_scan_bus(bus, 0x00, ((next_unitid - 1) << 3) | 7);
}
unsigned int ht_scan_bridge(struct device *dev, unsigned int max)
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index fe03d61e26..188f101038 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -1074,17 +1074,12 @@ unsigned int pci_match_simple_dev(device_t dev, pci_devfn_t sdev)
* Determine the existence of devices and bridges on a PCI bus. If there are
* bridges on the bus, recursively scan the buses behind the bridges.
*
- * This function is the default scan_bus() method for the root device
- * 'dev_root'.
- *
* @param bus Pointer to the bus structure.
* @param min_devfn Minimum devfn to look at in the scan, usually 0x00.
* @param max_devfn Maximum devfn to look at in the scan, usually 0xff.
- * @param max Current bus number.
- * @return The maximum bus number found, after scanning all subordinate busses.
*/
-unsigned int pci_scan_bus(struct bus *bus, unsigned min_devfn,
- unsigned max_devfn, unsigned int max)
+void pci_scan_bus(struct bus *bus, unsigned min_devfn,
+ unsigned max_devfn)
{
unsigned int devfn;
struct device *old_devices;
@@ -1149,17 +1144,19 @@ unsigned int pci_scan_bus(struct bus *bus, unsigned min_devfn,
* For all children that implement scan_bus() (i.e. bridges)
* scan the bus behind that child.
*/
+ unsigned int max = bus->secondary;
+
for (child = bus->children; child; child = child->sibling)
max = scan_bus(child, max);
+ bus->subordinate = max;
+
/*
* We've scanned the bus and so we know all about what's on the other
* side of any bridges that may be on this bus plus any devices.
* Return how far we've got finding sub-buses.
*/
- printk(BIOS_DEBUG, "PCI: pci_scan_bus returning with max=%03x\n", max);
post_code(0x55);
- return max;
}
typedef enum {
@@ -1228,10 +1225,9 @@ static void pci_bridge_route(struct bus *link, scan_state state)
* @return The maximum bus number found, after scanning all subordinate buses.
*/
unsigned int do_pci_scan_bridge(struct device *dev, unsigned int max,
- unsigned int (*do_scan_bus) (struct bus * bus,
+ void (*do_scan_bus) (struct bus * bus,
unsigned min_devfn,
- unsigned max_devfn,
- unsigned int max))
+ unsigned max_devfn))
{
struct bus *bus;
@@ -1251,7 +1247,7 @@ unsigned int do_pci_scan_bridge(struct device *dev, unsigned int max,
pci_bridge_route(bus, PCI_ROUTE_SCAN);
- bus->subordinate = do_scan_bus(bus, 0x00, 0xff, bus->secondary);
+ do_scan_bus(bus, 0x00, 0xff);
pci_bridge_route(bus, PCI_ROUTE_FINAL);
@@ -1287,7 +1283,7 @@ unsigned int pci_scan_bridge(struct device *dev, unsigned int max)
unsigned int pci_domain_scan_bus(device_t dev, unsigned int unused)
{
struct bus *link = dev->link_list;
- link->subordinate = pci_scan_bus(link, PCI_DEVFN(0, 0), 0xff, link->secondary);
+ pci_scan_bus(link, PCI_DEVFN(0, 0), 0xff);
return unused;
}
diff --git a/src/device/pciexp_device.c b/src/device/pciexp_device.c
index f6127b2d96..5311397cb7 100644
--- a/src/device/pciexp_device.c
+++ b/src/device/pciexp_device.c
@@ -416,12 +416,12 @@ static void pciexp_tune_dev(device_t dev)
#endif
}
-unsigned int pciexp_scan_bus(struct bus *bus, unsigned int min_devfn,
- unsigned int max_devfn, unsigned int max)
+void pciexp_scan_bus(struct bus *bus, unsigned int min_devfn,
+ unsigned int max_devfn)
{
device_t child;
- max = pci_scan_bus(bus, min_devfn, max_devfn, max);
+ pci_scan_bus(bus, min_devfn, max_devfn);
for (child = bus->children; child; child = child->sibling) {
if ((child->path.pci.devfn < min_devfn) ||
@@ -430,7 +430,6 @@ unsigned int pciexp_scan_bus(struct bus *bus, unsigned int min_devfn,
}
pciexp_tune_dev(child);
}
- return max;
}
unsigned int pciexp_scan_bridge(device_t dev, unsigned int max)