serial: 8250_pci: handle FL_NOIRQ board flag
In commit8428413b1d
("serial: 8250_pci: Implement MSI(-X) support") the way the irq gets allocated was changed. With that change the handling FL_NOIRQ got lost. Restore the old behaviour. Fixes:8428413b1d
("serial: 8250_pci: Implement MSI(-X) support") Cc: <stable@vger.kernel.org> Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Link: https://lore.kernel.org/r/20210527095529.26281-1-christian.gmeiner@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
016002848c
commit
9808f9be31
|
@ -3958,21 +3958,26 @@ pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board)
|
|||
uart.port.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ;
|
||||
uart.port.uartclk = board->base_baud * 16;
|
||||
|
||||
if (pci_match_id(pci_use_msi, dev)) {
|
||||
dev_dbg(&dev->dev, "Using MSI(-X) interrupts\n");
|
||||
pci_set_master(dev);
|
||||
rc = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_ALL_TYPES);
|
||||
if (board->flags & FL_NOIRQ) {
|
||||
uart.port.irq = 0;
|
||||
} else {
|
||||
dev_dbg(&dev->dev, "Using legacy interrupts\n");
|
||||
rc = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_LEGACY);
|
||||
}
|
||||
if (rc < 0) {
|
||||
kfree(priv);
|
||||
priv = ERR_PTR(rc);
|
||||
goto err_deinit;
|
||||
if (pci_match_id(pci_use_msi, dev)) {
|
||||
dev_dbg(&dev->dev, "Using MSI(-X) interrupts\n");
|
||||
pci_set_master(dev);
|
||||
rc = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_ALL_TYPES);
|
||||
} else {
|
||||
dev_dbg(&dev->dev, "Using legacy interrupts\n");
|
||||
rc = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_LEGACY);
|
||||
}
|
||||
if (rc < 0) {
|
||||
kfree(priv);
|
||||
priv = ERR_PTR(rc);
|
||||
goto err_deinit;
|
||||
}
|
||||
|
||||
uart.port.irq = pci_irq_vector(dev, 0);
|
||||
}
|
||||
|
||||
uart.port.irq = pci_irq_vector(dev, 0);
|
||||
uart.port.dev = &dev->dev;
|
||||
|
||||
for (i = 0; i < nr_ports; i++) {
|
||||
|
|
Loading…
Reference in New Issue