]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
gpio: merrifield: Switch over to MSI interrupts
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 8 Apr 2020 15:41:54 +0000 (18:41 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 16 Apr 2020 17:41:06 +0000 (20:41 +0300)
Some devices may support MSI interrupts. Let's at least try to use them
in platforms that provide MSI capability.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/gpio/gpio-merrifield.c

index 48918a016cd8310f97fc33232a5001646a178b3f..11e6ea70568a4a2acefce9371e9d1a91f7e32c0c 100644 (file)
@@ -473,6 +473,10 @@ static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id
 
        raw_spin_lock_init(&priv->lock);
 
+       retval = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES);
+       if (retval < 0)
+               return retval;
+
        girq = &priv->chip.irq;
        girq->chip = &mrfld_irqchip;
        girq->init_hw = mrfld_irq_init_hw;
@@ -482,7 +486,7 @@ static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id
                                     sizeof(*girq->parents), GFP_KERNEL);
        if (!girq->parents)
                return -ENOMEM;
-       girq->parents[0] = pdev->irq;
+       girq->parents[0] = pci_irq_vector(pdev, 0);
        girq->first = irq_base;
        girq->default_type = IRQ_TYPE_NONE;
        girq->handler = handle_bad_irq;