HyperTransport: Move pci_scan_bus() call
Allows to remove parameter max from the call, it is not involved with the unitid assignment. Change-Id: I087622f4ff69474f0b27cfd8709106ab8ac4ca98 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/8687 Tested-by: build bot (Jenkins) Reviewed-by: Timothy Pearson <tpearson@raptorengineeringinc.com> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
parent
09b20cd05f
commit
b39714e5ee
|
@ -249,7 +249,7 @@ static void ht_collapse_early_enumeration(struct bus *bus,
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int hypertransport_scan_chain(struct bus *bus, unsigned min_devfn,
|
unsigned int hypertransport_scan_chain(struct bus *bus, unsigned min_devfn,
|
||||||
unsigned max_devfn, unsigned int max,
|
unsigned max_devfn,
|
||||||
unsigned *ht_unitid_base,
|
unsigned *ht_unitid_base,
|
||||||
unsigned offset_unitid)
|
unsigned offset_unitid)
|
||||||
{
|
{
|
||||||
|
@ -474,9 +474,7 @@ end_of_chain:
|
||||||
last_func->sibling = old_devices;
|
last_func->sibling = old_devices;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now that nothing is overlapping it is safe to scan the children. */
|
return next_unitid;
|
||||||
max = pci_scan_bus(bus, 0x00, ((next_unitid - 1) << 3) | 7, max);
|
|
||||||
return max;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -498,8 +496,13 @@ static unsigned int hypertransport_scan_chain_x(struct bus *bus,
|
||||||
{
|
{
|
||||||
unsigned int ht_unitid_base[4];
|
unsigned int ht_unitid_base[4];
|
||||||
unsigned int offset_unitid = 1;
|
unsigned int offset_unitid = 1;
|
||||||
return hypertransport_scan_chain(bus, min_devfn, max_devfn, max,
|
|
||||||
|
unsigned int next_unitid = hypertransport_scan_chain(bus, min_devfn, max_devfn,
|
||||||
ht_unitid_base, offset_unitid);
|
ht_unitid_base, offset_unitid);
|
||||||
|
|
||||||
|
/* Now that nothing is overlapping it is safe to scan the children. */
|
||||||
|
max = pci_scan_bus(bus, 0x00, ((next_unitid - 1) << 3) | 7, max);
|
||||||
|
return max;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ht_scan_bridge(struct device *dev, unsigned int max)
|
unsigned int ht_scan_bridge(struct device *dev, unsigned int max)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include <device/hypertransport_def.h>
|
#include <device/hypertransport_def.h>
|
||||||
|
|
||||||
unsigned int hypertransport_scan_chain(struct bus *bus,
|
unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||||
unsigned min_devfn, unsigned max_devfn, unsigned int max, unsigned *ht_unit_base, unsigned offset_unitid);
|
unsigned min_devfn, unsigned max_devfn, unsigned *ht_unit_base, unsigned offset_unitid);
|
||||||
unsigned int ht_scan_bridge(struct device *dev, unsigned int max);
|
unsigned int ht_scan_bridge(struct device *dev, unsigned int max);
|
||||||
extern struct device_operations default_ht_ops_bus;
|
extern struct device_operations default_ht_ops_bus;
|
||||||
|
|
||||||
|
|
|
@ -165,6 +165,7 @@ static u32 amdfam10_scan_chain(device_t dev, u32 nodeid, struct bus *link, bool
|
||||||
|
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
unsigned int next_unitid;
|
||||||
u32 ht_c_index;
|
u32 ht_c_index;
|
||||||
u32 ht_unitid_base[4]; // here assume only 4 HT device on chain
|
u32 ht_unitid_base[4]; // here assume only 4 HT device on chain
|
||||||
u32 max_bus;
|
u32 max_bus;
|
||||||
|
@ -259,7 +260,10 @@ static u32 amdfam10_scan_chain(device_t dev, u32 nodeid, struct bus *link, bool
|
||||||
else
|
else
|
||||||
max_devfn = (0x1f<<3) | 7;
|
max_devfn = (0x1f<<3) | 7;
|
||||||
|
|
||||||
max = hypertransport_scan_chain(link, 0, max_devfn, max, ht_unitid_base, offset_unit_id(is_sblink));
|
next_unitid = hypertransport_scan_chain(link, 0, max_devfn, ht_unitid_base, offset_unit_id(is_sblink));
|
||||||
|
|
||||||
|
/* Now that nothing is overlapping it is safe to scan the children. */
|
||||||
|
max = pci_scan_bus(link, 0x00, ((next_unitid - 1) << 3) | 7, max);
|
||||||
|
|
||||||
/* We know the number of busses behind this bridge. Set the
|
/* We know the number of busses behind this bridge. Set the
|
||||||
* subordinate bus number to it's real value
|
* subordinate bus number to it's real value
|
||||||
|
|
|
@ -105,6 +105,7 @@ static u32 amdk8_scan_chain(device_t dev, u32 nodeid, struct bus *link, bool is_
|
||||||
u32 max)
|
u32 max)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
unsigned int next_unitid;
|
||||||
u32 busses, config_busses;
|
u32 busses, config_busses;
|
||||||
u32 free_reg, config_reg;
|
u32 free_reg, config_reg;
|
||||||
u32 ht_unitid_base[4]; // here assume only 4 HT device on chain
|
u32 ht_unitid_base[4]; // here assume only 4 HT device on chain
|
||||||
|
@ -209,7 +210,10 @@ static u32 amdk8_scan_chain(device_t dev, u32 nodeid, struct bus *link, bool is_
|
||||||
else
|
else
|
||||||
max_devfn = (0x1f<<3) | 7;
|
max_devfn = (0x1f<<3) | 7;
|
||||||
|
|
||||||
max = hypertransport_scan_chain(link, 0, max_devfn, max, ht_unitid_base, offset_unit_id(is_sblink));
|
next_unitid = hypertransport_scan_chain(link, 0, max_devfn, ht_unitid_base, offset_unit_id(is_sblink));
|
||||||
|
|
||||||
|
/* Now that nothing is overlapping it is safe to scan the children. */
|
||||||
|
max = pci_scan_bus(link, 0x00, ((next_unitid - 1) << 3) | 7, max);
|
||||||
|
|
||||||
/* We know the number of busses behind this bridge. Set the
|
/* We know the number of busses behind this bridge. Set the
|
||||||
* subordinate bus number to it's real value
|
* subordinate bus number to it's real value
|
||||||
|
|
Loading…
Reference in New Issue