aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/8250_pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty/serial/8250_pci.c')
-rw-r--r--drivers/tty/serial/8250_pci.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/drivers/tty/serial/8250_pci.c b/drivers/tty/serial/8250_pci.c
index 3abeca2a2a1b..825937a5f210 100644
--- a/drivers/tty/serial/8250_pci.c
+++ b/drivers/tty/serial/8250_pci.c
@@ -1101,6 +1101,15 @@ static int pci_eg20t_init(struct pci_dev *dev)
1101#endif 1101#endif
1102} 1102}
1103 1103
1104static int
1105pci_xr17c154_setup(struct serial_private *priv,
1106 const struct pciserial_board *board,
1107 struct uart_port *port, int idx)
1108{
1109 port->flags |= UPF_EXAR_EFR;
1110 return pci_default_setup(priv, board, port, idx);
1111}
1112
1104/* This should be in linux/pci_ids.h */ 1113/* This should be in linux/pci_ids.h */
1105#define PCI_VENDOR_ID_SBSMODULARIO 0x124B 1114#define PCI_VENDOR_ID_SBSMODULARIO 0x124B
1106#define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B 1115#define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B
@@ -1506,6 +1515,30 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
1506 .setup = pci_timedia_setup, 1515 .setup = pci_timedia_setup,
1507 }, 1516 },
1508 /* 1517 /*
1518 * Exar cards
1519 */
1520 {
1521 .vendor = PCI_VENDOR_ID_EXAR,
1522 .device = PCI_DEVICE_ID_EXAR_XR17C152,
1523 .subvendor = PCI_ANY_ID,
1524 .subdevice = PCI_ANY_ID,
1525 .setup = pci_xr17c154_setup,
1526 },
1527 {
1528 .vendor = PCI_VENDOR_ID_EXAR,
1529 .device = PCI_DEVICE_ID_EXAR_XR17C154,
1530 .subvendor = PCI_ANY_ID,
1531 .subdevice = PCI_ANY_ID,
1532 .setup = pci_xr17c154_setup,
1533 },
1534 {
1535 .vendor = PCI_VENDOR_ID_EXAR,
1536 .device = PCI_DEVICE_ID_EXAR_XR17C158,
1537 .subvendor = PCI_ANY_ID,
1538 .subdevice = PCI_ANY_ID,
1539 .setup = pci_xr17c154_setup,
1540 },
1541 /*
1509 * Xircom cards 1542 * Xircom cards
1510 */ 1543 */
1511 { 1544 {
@@ -1558,46 +1591,55 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
1558 .vendor = PCI_VENDOR_ID_INTEL, 1591 .vendor = PCI_VENDOR_ID_INTEL,
1559 .device = 0x8811, 1592 .device = 0x8811,
1560 .init = pci_eg20t_init, 1593 .init = pci_eg20t_init,
1594 .setup = pci_default_setup,
1561 }, 1595 },
1562 { 1596 {
1563 .vendor = PCI_VENDOR_ID_INTEL, 1597 .vendor = PCI_VENDOR_ID_INTEL,
1564 .device = 0x8812, 1598 .device = 0x8812,
1565 .init = pci_eg20t_init, 1599 .init = pci_eg20t_init,
1600 .setup = pci_default_setup,
1566 }, 1601 },
1567 { 1602 {
1568 .vendor = PCI_VENDOR_ID_INTEL, 1603 .vendor = PCI_VENDOR_ID_INTEL,
1569 .device = 0x8813, 1604 .device = 0x8813,
1570 .init = pci_eg20t_init, 1605 .init = pci_eg20t_init,
1606 .setup = pci_default_setup,
1571 }, 1607 },
1572 { 1608 {
1573 .vendor = PCI_VENDOR_ID_INTEL, 1609 .vendor = PCI_VENDOR_ID_INTEL,
1574 .device = 0x8814, 1610 .device = 0x8814,
1575 .init = pci_eg20t_init, 1611 .init = pci_eg20t_init,
1612 .setup = pci_default_setup,
1576 }, 1613 },
1577 { 1614 {
1578 .vendor = 0x10DB, 1615 .vendor = 0x10DB,
1579 .device = 0x8027, 1616 .device = 0x8027,
1580 .init = pci_eg20t_init, 1617 .init = pci_eg20t_init,
1618 .setup = pci_default_setup,
1581 }, 1619 },
1582 { 1620 {
1583 .vendor = 0x10DB, 1621 .vendor = 0x10DB,
1584 .device = 0x8028, 1622 .device = 0x8028,
1585 .init = pci_eg20t_init, 1623 .init = pci_eg20t_init,
1624 .setup = pci_default_setup,
1586 }, 1625 },
1587 { 1626 {
1588 .vendor = 0x10DB, 1627 .vendor = 0x10DB,
1589 .device = 0x8029, 1628 .device = 0x8029,
1590 .init = pci_eg20t_init, 1629 .init = pci_eg20t_init,
1630 .setup = pci_default_setup,
1591 }, 1631 },
1592 { 1632 {
1593 .vendor = 0x10DB, 1633 .vendor = 0x10DB,
1594 .device = 0x800C, 1634 .device = 0x800C,
1595 .init = pci_eg20t_init, 1635 .init = pci_eg20t_init,
1636 .setup = pci_default_setup,
1596 }, 1637 },
1597 { 1638 {
1598 .vendor = 0x10DB, 1639 .vendor = 0x10DB,
1599 .device = 0x800D, 1640 .device = 0x800D,
1600 .init = pci_eg20t_init, 1641 .init = pci_eg20t_init,
1642 .setup = pci_default_setup,
1601 }, 1643 },
1602 /* 1644 /*
1603 * Cronyx Omega PCI (PLX-chip based) 1645 * Cronyx Omega PCI (PLX-chip based)