mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
PCI: replace struct pci_bus secondary/subordinate with busn_res
Replace the struct pci_bus secondary/subordinate members with the struct resource busn_res. Later we'll build a resource tree of these bus numbers. [bhelgaas: changelog] Signed-off-by: Yinghai Lu <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]>
This commit is contained in:
parent
92f0243093
commit
b918c62e08
31 changed files with 117 additions and 117 deletions
|
|
@ -73,7 +73,7 @@ int __ref cb_alloc(struct pcmcia_socket *s)
|
|||
s->functions = pci_scan_slot(bus, PCI_DEVFN(0, 0));
|
||||
pci_fixup_cardbus(bus);
|
||||
|
||||
max = bus->secondary;
|
||||
max = bus->busn_res.start;
|
||||
for (pass = 0; pass < 2; pass++)
|
||||
list_for_each_entry(dev, &bus->devices, bus_list)
|
||||
if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE ||
|
||||
|
|
|
|||
|
|
@ -1048,8 +1048,8 @@ static void yenta_config_init(struct yenta_socket *socket)
|
|||
config_writeb(socket, PCI_LATENCY_TIMER, 168);
|
||||
config_writel(socket, PCI_PRIMARY_BUS,
|
||||
(176 << 24) | /* sec. latency timer */
|
||||
(dev->subordinate->subordinate << 16) | /* subordinate bus */
|
||||
(dev->subordinate->secondary << 8) | /* secondary bus */
|
||||
((unsigned int)dev->subordinate->busn_res.end << 16) | /* subordinate bus */
|
||||
((unsigned int)dev->subordinate->busn_res.start << 8) | /* secondary bus */
|
||||
dev->subordinate->primary); /* primary bus */
|
||||
|
||||
/*
|
||||
|
|
@ -1086,14 +1086,14 @@ static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge)
|
|||
struct pci_bus *bridge_to_fix = cardbus_bridge->parent;
|
||||
|
||||
/* Check bus numbers are already set up correctly: */
|
||||
if (bridge_to_fix->subordinate >= cardbus_bridge->subordinate)
|
||||
if (bridge_to_fix->busn_res.end >= cardbus_bridge->busn_res.end)
|
||||
return; /* The subordinate number is ok, nothing to do */
|
||||
|
||||
if (!bridge_to_fix->parent)
|
||||
return; /* Root bridges are ok */
|
||||
|
||||
/* stay within the limits of the bus range of the parent: */
|
||||
upper_limit = bridge_to_fix->parent->subordinate;
|
||||
upper_limit = bridge_to_fix->parent->busn_res.end;
|
||||
|
||||
/* check the bus ranges of all silbling bridges to prevent overlap */
|
||||
list_for_each(tmp, &bridge_to_fix->parent->children) {
|
||||
|
|
@ -1104,36 +1104,36 @@ static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge)
|
|||
* current upper limit, set the new upper limit to
|
||||
* the bus number below the silbling's range:
|
||||
*/
|
||||
if (silbling->secondary > bridge_to_fix->subordinate
|
||||
&& silbling->secondary <= upper_limit)
|
||||
upper_limit = silbling->secondary - 1;
|
||||
if (silbling->busn_res.start > bridge_to_fix->busn_res.end
|
||||
&& silbling->busn_res.start <= upper_limit)
|
||||
upper_limit = silbling->busn_res.start - 1;
|
||||
}
|
||||
|
||||
/* Show that the wanted subordinate number is not possible: */
|
||||
if (cardbus_bridge->subordinate > upper_limit)
|
||||
if (cardbus_bridge->busn_res.end > upper_limit)
|
||||
dev_printk(KERN_WARNING, &cardbus_bridge->dev,
|
||||
"Upper limit for fixing this "
|
||||
"bridge's parent bridge: #%02x\n", upper_limit);
|
||||
|
||||
/* If we have room to increase the bridge's subordinate number, */
|
||||
if (bridge_to_fix->subordinate < upper_limit) {
|
||||
if (bridge_to_fix->busn_res.end < upper_limit) {
|
||||
|
||||
/* use the highest number of the hidden bus, within limits */
|
||||
unsigned char subordinate_to_assign =
|
||||
min(cardbus_bridge->subordinate, upper_limit);
|
||||
min_t(int, cardbus_bridge->busn_res.end, upper_limit);
|
||||
|
||||
dev_printk(KERN_INFO, &bridge_to_fix->dev,
|
||||
"Raising subordinate bus# of parent "
|
||||
"bus (#%02x) from #%02x to #%02x\n",
|
||||
bridge_to_fix->number,
|
||||
bridge_to_fix->subordinate, subordinate_to_assign);
|
||||
(int)bridge_to_fix->busn_res.end, subordinate_to_assign);
|
||||
|
||||
/* Save the new subordinate in the bus struct of the bridge */
|
||||
bridge_to_fix->subordinate = subordinate_to_assign;
|
||||
bridge_to_fix->busn_res.end = subordinate_to_assign;
|
||||
|
||||
/* and update the PCI config space with the new subordinate */
|
||||
pci_write_config_byte(bridge_to_fix->self,
|
||||
PCI_SUBORDINATE_BUS, bridge_to_fix->subordinate);
|
||||
PCI_SUBORDINATE_BUS, bridge_to_fix->busn_res.end);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue