summaryrefslogtreecommitdiff
path: root/drivers/pci_auto.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci_auto.c')
-rw-r--r--drivers/pci_auto.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/drivers/pci_auto.c b/drivers/pci_auto.c
index 295f7c8..00177cc 100644
--- a/drivers/pci_auto.c
+++ b/drivers/pci_auto.c
@@ -285,34 +285,22 @@ int pciauto_config_device(struct pci_controller *hose, pci_dev_t dev)
unsigned int sub_bus = PCI_BUS(dev);
unsigned short class;
unsigned char prg_iface;
- int n;
pci_hose_read_config_word(hose, dev, PCI_CLASS_DEVICE, &class);
switch(class)
{
case PCI_CLASS_BRIDGE_PCI:
+ hose->current_busno++;
pciauto_setup_device(hose, dev, 2, hose->pci_mem, hose->pci_io);
- DEBUGF("PCI Autoconfig: Found P2P bridge, device %d\n",
- PCI_DEV(dev));
-
- /* HJF: Make sure two bridges on the same bus
- * won't get the same bus number
- */
- pciauto_prescan_setup_bridge(hose, dev,
- max(sub_bus, hose->current_busno));
-
- n = pci_hose_scan_bus(hose, hose->current_busno+1 /*PCI_BUS(dev)+1*/);
- sub_bus = max(sub_bus, n);
- sub_bus = max(sub_bus, hose->current_busno);
+ DEBUGF("PCI Autoconfig: Found P2P bridge, device %d\n", PCI_DEV(dev));
+ pciauto_prescan_setup_bridge(hose, dev, sub_bus);
+
+ pci_hose_scan_bus(hose, hose->current_busno);
- DEBUGF("PCI Autoconfig: Got %d from pci_hose_scan_bus\n",
- sub_bus);
-
- pciauto_postscan_setup_bridge(hose, dev,
- max(sub_bus, hose->current_busno));
- hose->current_busno++;
+ pciauto_postscan_setup_bridge(hose, dev, sub_bus);
+ sub_bus = hose->current_busno;
break;
case PCI_CLASS_STORAGE_IDE: