@@ -144,16 +144,20 @@ static int __init pcibios_init(void)
for (hose = hose_head; hose; hose = hose->next)
pcibios_scanbus(hose);
- pci_fixup_irqs(pci_common_swizzle, pcibios_map_platform_irq);
-
dma_debug_add_bus(&pci_bus_type);
-
pci_initialized = 1;
return 0;
}
subsys_initcall(pcibios_init);
+int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
+{
+ bridge->swizzle_irq = pci_common_swizzle;
+ bridge->map_irq = pcibios_map_platform_irq;
+ return 0;
+}
+
/*
* Called after each bus is probed, but before its children
* are examined.
Currently platform specific PCI device IRQ assignment is run during the boot code, this results in a wide array of differing code paths and causes hot-plugged PCI devices to not be assigned IRQs, this patch removes the boot time initialisation of such IRQs and instead registers assignment functions to be run during the PCI device enable path. Signed-off-by: Matthew Minter <matt@masarand.com> --- arch/sh/drivers/pci/pci.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)