@@ -80,20 +80,16 @@ int pcibios_enable_resources(struct pci_dev *dev, int mask)
return 0;
}
-int pcibios_enable_irq(struct pci_dev *dev)
+int pcibios_enable_irq(struct pci_dev *dev, u8 slot, u8 pin)
{
dev->irq = EXT_INTR_VECT;
return 0;
}
-int pcibios_enable_device(struct pci_dev *dev, int mask)
+int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
{
- int err;
-
- if ((err = pcibios_enable_resources(dev, mask)) < 0)
- return err;
-
- if (!dev->msi_enabled)
- pcibios_enable_irq(dev);
+ bridge->swizzle_irq = NULL;
+ bridge->map_irq = pcibios_enable_irq;
return 0;
}
+
From: Matthew Minter <matt@masarand.com> PCI IRQs are currently configured to be enabled once at boot in a dedicated pass. This means that PCI devices which are hot-plugged after boot time will not be given an IRQ, this patch-set fixes this by registering the assignment function to be called later in the device enable path. --- arch/cris/arch-v32/drivers/pci/bios.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-)