Currently mips PCI IRQs are assigned at boot, this creates an extra pass over the PCI bus and causes hot-plugged devices which are not present at boot to not be given IRQs, this patch set fixes this by registering assignment functions which are then run later during the device enable code path. Signed-off-by: Matthew Minter <matt@xxxxxxxxxxxx> --- arch/mips/pci/pci.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c index b8a0bf5..137d3fe 100644 --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c @@ -247,13 +247,18 @@ 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_irq); - pci_initialized = 1; return 0; } +int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) +{ + bridge->swizzle_irq = pci_common_swizzle; + bridge->map_irq = pcibios_map_irq; + return 0; +} + subsys_initcall(pcibios_init); static int pcibios_enable_resources(struct pci_dev *dev, int mask) -- 2.6.2 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html