aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/tty/serial/8250/8250.c4
-rw-r--r--drivers/tty/serial/8250/8250_pci.c17
-rw-r--r--include/linux/serial_core.h1
3 files changed, 2 insertions, 20 deletions
diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c
index 5b149b466ec8..56492d208a7a 100644
--- a/drivers/tty/serial/8250/8250.c
+++ b/drivers/tty/serial/8250/8250.c
@@ -1572,13 +1572,11 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id)
1572 do { 1572 do {
1573 struct uart_8250_port *up; 1573 struct uart_8250_port *up;
1574 struct uart_port *port; 1574 struct uart_port *port;
1575 bool skip;
1576 1575
1577 up = list_entry(l, struct uart_8250_port, list); 1576 up = list_entry(l, struct uart_8250_port, list);
1578 port = &up->port; 1577 port = &up->port;
1579 skip = pass_counter && up->port.flags & UPF_IIR_ONCE;
1580 1578
1581 if (!skip && port->handle_irq(port)) { 1579 if (port->handle_irq(port)) {
1582 handled = 1; 1580 handled = 1;
1583 end = NULL; 1581 end = NULL;
1584 } else if (end == NULL) 1582 } else if (end == NULL)
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index 1d4ccf8c8874..105dcfbd3d33 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -1092,14 +1092,6 @@ static int skip_tx_en_setup(struct serial_private *priv,
1092 return pci_default_setup(priv, board, port, idx); 1092 return pci_default_setup(priv, board, port, idx);
1093} 1093}
1094 1094
1095static int kt_serial_setup(struct serial_private *priv,
1096 const struct pciserial_board *board,
1097 struct uart_port *port, int idx)
1098{
1099 port->flags |= UPF_IIR_ONCE;
1100 return skip_tx_en_setup(priv, board, port, idx);
1101}
1102
1103static int pci_eg20t_init(struct pci_dev *dev) 1095static int pci_eg20t_init(struct pci_dev *dev)
1104{ 1096{
1105#if defined(CONFIG_SERIAL_PCH_UART) || defined(CONFIG_SERIAL_PCH_UART_MODULE) 1097#if defined(CONFIG_SERIAL_PCH_UART) || defined(CONFIG_SERIAL_PCH_UART_MODULE)
@@ -1118,6 +1110,7 @@ pci_xr17c154_setup(struct serial_private *priv,
1118 return pci_default_setup(priv, board, port, idx); 1110 return pci_default_setup(priv, board, port, idx);
1119} 1111}
1120 1112
1113/* This should be in linux/pci_ids.h */
1121#define PCI_VENDOR_ID_SBSMODULARIO 0x124B 1114#define PCI_VENDOR_ID_SBSMODULARIO 0x124B
1122#define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B 1115#define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B
1123#define PCI_DEVICE_ID_OCTPRO 0x0001 1116#define PCI_DEVICE_ID_OCTPRO 0x0001
@@ -1147,7 +1140,6 @@ pci_xr17c154_setup(struct serial_private *priv,
1147#define PCI_DEVICE_ID_OXSEMI_16PCI958 0x9538 1140#define PCI_DEVICE_ID_OXSEMI_16PCI958 0x9538
1148#define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6 1141#define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6
1149#define PCI_DEVICE_ID_PLX_CRONYX_OMEGA 0xc001 1142#define PCI_DEVICE_ID_PLX_CRONYX_OMEGA 0xc001
1150#define PCI_DEVICE_ID_INTEL_PATSBURG_KT 0x1d3d
1151 1143
1152/* Unknown vendors/cards - this should not be in linux/pci_ids.h */ 1144/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
1153#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584 1145#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
@@ -1232,13 +1224,6 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
1232 .subdevice = PCI_ANY_ID, 1224 .subdevice = PCI_ANY_ID,
1233 .setup = ce4100_serial_setup, 1225 .setup = ce4100_serial_setup,
1234 }, 1226 },
1235 {
1236 .vendor = PCI_VENDOR_ID_INTEL,
1237 .device = PCI_DEVICE_ID_INTEL_PATSBURG_KT,
1238 .subvendor = PCI_ANY_ID,
1239 .subdevice = PCI_ANY_ID,
1240 .setup = kt_serial_setup,
1241 },
1242 /* 1227 /*
1243 * ITE 1228 * ITE
1244 */ 1229 */
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index f51bf2e70c69..882f1d61aa56 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -357,7 +357,6 @@ struct uart_port {
357#define UPF_CONS_FLOW ((__force upf_t) (1 << 23)) 357#define UPF_CONS_FLOW ((__force upf_t) (1 << 23))
358#define UPF_SHARE_IRQ ((__force upf_t) (1 << 24)) 358#define UPF_SHARE_IRQ ((__force upf_t) (1 << 24))
359#define UPF_EXAR_EFR ((__force upf_t) (1 << 25)) 359#define UPF_EXAR_EFR ((__force upf_t) (1 << 25))
360#define UPF_IIR_ONCE ((__force upf_t) (1 << 26))
361/* The exact UART type is known and should not be probed. */ 360/* The exact UART type is known and should not be probed. */
362#define UPF_FIXED_TYPE ((__force upf_t) (1 << 27)) 361#define UPF_FIXED_TYPE ((__force upf_t) (1 << 27))
363#define UPF_BOOT_AUTOCONF ((__force upf_t) (1 << 28)) 362#define UPF_BOOT_AUTOCONF ((__force upf_t) (1 << 28))