diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 3dccf88581814eb25b8dd41fdbb50aefdd9906cf..78f7339e35cae1618deef1c2689191e3ad87124d 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -645,6 +645,14 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus) pci_hose_read_config_word(hose, dev, PCI_DEVICE_ID, &device); pci_hose_read_config_word(hose, dev, PCI_CLASS_DEVICE, &class); +#ifdef CONFIG_PCI_SCAN_SHOW + if (pci_print_dev(hose, dev)) { + printf(" %02x:%02x.%x - %04x:%04x - %s\n", + PCI_BUS(dev), PCI_DEV(dev), PCI_FUNC(dev), + vendor, device, pci_class_str(class >> 8)); + } +#endif + cfg = pci_find_config(hose, class, vendor, device, PCI_BUS(dev), PCI_DEV(dev), PCI_FUNC(dev)); if (cfg) { @@ -657,16 +665,9 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus) sub_bus = max(sub_bus, n); #endif } + if (hose->fixup_irq) hose->fixup_irq(hose, dev); - -#ifdef CONFIG_PCI_SCAN_SHOW - if (pci_print_dev(hose, dev)) { - printf(" %02x:%02x.%x - %04x:%04x - %s\n", - PCI_BUS(dev), PCI_DEV(dev), PCI_FUNC(dev), - vendor, device, pci_class_str(class >> 8)); - } -#endif } return sub_bus;