@@ -3958,21 +3958,26 @@ pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board)
3958
3958
uart .port .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ ;
3959
3959
uart .port .uartclk = board -> base_baud * 16 ;
3960
3960
3961
- if (pci_match_id (pci_use_msi , dev )) {
3962
- dev_dbg (& dev -> dev , "Using MSI(-X) interrupts\n" );
3963
- pci_set_master (dev );
3964
- rc = pci_alloc_irq_vectors (dev , 1 , 1 , PCI_IRQ_ALL_TYPES );
3961
+ if (board -> flags & FL_NOIRQ ) {
3962
+ uart .port .irq = 0 ;
3965
3963
} else {
3966
- dev_dbg (& dev -> dev , "Using legacy interrupts\n" );
3967
- rc = pci_alloc_irq_vectors (dev , 1 , 1 , PCI_IRQ_LEGACY );
3968
- }
3969
- if (rc < 0 ) {
3970
- kfree (priv );
3971
- priv = ERR_PTR (rc );
3972
- goto err_deinit ;
3964
+ if (pci_match_id (pci_use_msi , dev )) {
3965
+ dev_dbg (& dev -> dev , "Using MSI(-X) interrupts\n" );
3966
+ pci_set_master (dev );
3967
+ rc = pci_alloc_irq_vectors (dev , 1 , 1 , PCI_IRQ_ALL_TYPES );
3968
+ } else {
3969
+ dev_dbg (& dev -> dev , "Using legacy interrupts\n" );
3970
+ rc = pci_alloc_irq_vectors (dev , 1 , 1 , PCI_IRQ_LEGACY );
3971
+ }
3972
+ if (rc < 0 ) {
3973
+ kfree (priv );
3974
+ priv = ERR_PTR (rc );
3975
+ goto err_deinit ;
3976
+ }
3977
+
3978
+ uart .port .irq = pci_irq_vector (dev , 0 );
3973
3979
}
3974
3980
3975
- uart .port .irq = pci_irq_vector (dev , 0 );
3976
3981
uart .port .dev = & dev -> dev ;
3977
3982
3978
3983
for (i = 0 ; i < nr_ports ; i ++ ) {
0 commit comments