|
@@ -56,16 +56,6 @@ void __weak arch_teardown_msi_irq(unsigned int irq)
|
|
chip->teardown_irq(chip, irq);
|
|
chip->teardown_irq(chip, irq);
|
|
}
|
|
}
|
|
|
|
|
|
-int __weak arch_msi_check_device(struct pci_dev *dev, int nvec, int type)
|
|
|
|
-{
|
|
|
|
- struct msi_chip *chip = dev->bus->msi;
|
|
|
|
-
|
|
|
|
- if (!chip || !chip->check_device)
|
|
|
|
- return 0;
|
|
|
|
-
|
|
|
|
- return chip->check_device(chip, dev, nvec, type);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
|
|
int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
|
|
{
|
|
{
|
|
struct msi_desc *entry;
|
|
struct msi_desc *entry;
|
|
@@ -815,10 +805,9 @@ out_free:
|
|
* to determine if MSI/-X are supported for the device. If MSI/-X is
|
|
* to determine if MSI/-X are supported for the device. If MSI/-X is
|
|
* supported return 0, else return an error code.
|
|
* supported return 0, else return an error code.
|
|
**/
|
|
**/
|
|
-static int pci_msi_check_device(struct pci_dev *dev, int nvec, int type)
|
|
|
|
|
|
+static int pci_msi_check_device(struct pci_dev *dev, int nvec)
|
|
{
|
|
{
|
|
struct pci_bus *bus;
|
|
struct pci_bus *bus;
|
|
- int ret;
|
|
|
|
|
|
|
|
/* MSI must be globally enabled and supported by the device */
|
|
/* MSI must be globally enabled and supported by the device */
|
|
if (!pci_msi_enable || !dev || dev->no_msi)
|
|
if (!pci_msi_enable || !dev || dev->no_msi)
|
|
@@ -843,10 +832,6 @@ static int pci_msi_check_device(struct pci_dev *dev, int nvec, int type)
|
|
if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
|
|
if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
- ret = arch_msi_check_device(dev, nvec, type);
|
|
|
|
- if (ret)
|
|
|
|
- return ret;
|
|
|
|
-
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -952,7 +937,7 @@ int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec)
|
|
if (!entries || !dev->msix_cap || dev->current_state != PCI_D0)
|
|
if (!entries || !dev->msix_cap || dev->current_state != PCI_D0)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
- status = pci_msi_check_device(dev, nvec, PCI_CAP_ID_MSIX);
|
|
|
|
|
|
+ status = pci_msi_check_device(dev, nvec);
|
|
if (status)
|
|
if (status)
|
|
return status;
|
|
return status;
|
|
|
|
|
|
@@ -1086,7 +1071,7 @@ int pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec)
|
|
nvec = maxvec;
|
|
nvec = maxvec;
|
|
|
|
|
|
do {
|
|
do {
|
|
- rc = pci_msi_check_device(dev, nvec, PCI_CAP_ID_MSI);
|
|
|
|
|
|
+ rc = pci_msi_check_device(dev, nvec);
|
|
if (rc < 0) {
|
|
if (rc < 0) {
|
|
return rc;
|
|
return rc;
|
|
} else if (rc > 0) {
|
|
} else if (rc > 0) {
|