|
|
@@ -711,20 +711,22 @@ int pcibios_add_device(struct pci_dev *dev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-int pcibios_alloc_irq(struct pci_dev *dev)
|
|
|
+int pcibios_enable_device(struct pci_dev *dev, int mask)
|
|
|
{
|
|
|
- return pcibios_enable_irq(dev);
|
|
|
-}
|
|
|
+ int err;
|
|
|
|
|
|
-void pcibios_free_irq(struct pci_dev *dev)
|
|
|
-{
|
|
|
- if (pcibios_disable_irq)
|
|
|
- pcibios_disable_irq(dev);
|
|
|
+ if ((err = pci_enable_resources(dev, mask)) < 0)
|
|
|
+ return err;
|
|
|
+
|
|
|
+ if (!pci_dev_msi_enabled(dev))
|
|
|
+ return pcibios_enable_irq(dev);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
-int pcibios_enable_device(struct pci_dev *dev, int mask)
|
|
|
+void pcibios_disable_device (struct pci_dev *dev)
|
|
|
{
|
|
|
- return pci_enable_resources(dev, mask);
|
|
|
+ if (!pci_dev_msi_enabled(dev) && pcibios_disable_irq)
|
|
|
+ pcibios_disable_irq(dev);
|
|
|
}
|
|
|
|
|
|
int pci_ext_cfg_avail(void)
|