patch "serial: 8250_pci: handle FL_NOIRQ board flag" added to tty-linus
Subsystems (2)
This is a note to let you know that I've just added the patch titled
serial: 8250_pci: handle FL_NOIRQ board flag
to my tty git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
in the tty-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
From 9808f9be31c68af43f6e531f2c851ebb066513fe Mon Sep 17 00:00:00 2001
From: Christian Gmeiner <[email protected]>
Date: Thu, 27 May 2021 11:54:40 +0200
Subject: serial: 8250_pci: handle FL_NOIRQ board flag
In commit 8428413b1d14 ("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.
--- drivers/tty/serial/8250/8250_pci.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-)
drivers/tty/serial/8250/8250_pci.c +17 -12
@@ -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++) {
Signature · 1 line
2.31.1