diff options
Diffstat (limited to 'drivers/serial/8250_pci.c')
-rw-r--r-- | drivers/serial/8250_pci.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c index 2a912153321e..94886c000d2a 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/serial/8250_pci.c | |||
@@ -439,6 +439,20 @@ static int pci_siig_init(struct pci_dev *dev) | |||
439 | return -ENODEV; | 439 | return -ENODEV; |
440 | } | 440 | } |
441 | 441 | ||
442 | static int pci_siig_setup(struct serial_private *priv, | ||
443 | struct pciserial_board *board, | ||
444 | struct uart_port *port, int idx) | ||
445 | { | ||
446 | unsigned int bar = FL_GET_BASE(board->flags) + idx, offset = 0; | ||
447 | |||
448 | if (idx > 3) { | ||
449 | bar = 4; | ||
450 | offset = (idx - 4) * 8; | ||
451 | } | ||
452 | |||
453 | return setup_port(priv, port, bar, offset, 0); | ||
454 | } | ||
455 | |||
442 | /* | 456 | /* |
443 | * Timedia has an explosion of boards, and to avoid the PCI table from | 457 | * Timedia has an explosion of boards, and to avoid the PCI table from |
444 | * growing *huge*, we use this function to collapse some 70 entries | 458 | * growing *huge*, we use this function to collapse some 70 entries |
@@ -748,7 +762,7 @@ static struct pci_serial_quirk pci_serial_quirks[] = { | |||
748 | .subvendor = PCI_ANY_ID, | 762 | .subvendor = PCI_ANY_ID, |
749 | .subdevice = PCI_ANY_ID, | 763 | .subdevice = PCI_ANY_ID, |
750 | .init = pci_siig_init, | 764 | .init = pci_siig_init, |
751 | .setup = pci_default_setup, | 765 | .setup = pci_siig_setup, |
752 | }, | 766 | }, |
753 | /* | 767 | /* |
754 | * Titan cards | 768 | * Titan cards |
@@ -1868,6 +1882,10 @@ static struct pci_device_id serial_pci_tbl[] = { | |||
1868 | PCI_SUBVENDOR_ID_CONNECT_TECH, | 1882 | PCI_SUBVENDOR_ID_CONNECT_TECH, |
1869 | PCI_SUBDEVICE_ID_CONNECT_TECH_TITAN_4, 0, 0, | 1883 | PCI_SUBDEVICE_ID_CONNECT_TECH_TITAN_4, 0, 0, |
1870 | pbn_b0_4_1843200 }, | 1884 | pbn_b0_4_1843200 }, |
1885 | { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, | ||
1886 | PCI_VENDOR_ID_AFAVLAB, | ||
1887 | PCI_SUBDEVICE_ID_AFAVLAB_P061, 0, 0, | ||
1888 | pbn_b0_4_1152000 }, | ||
1871 | { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152, | 1889 | { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152, |
1872 | PCI_SUBVENDOR_ID_CONNECT_TECH, | 1890 | PCI_SUBVENDOR_ID_CONNECT_TECH, |
1873 | PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2_232, 0, 0, | 1891 | PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2_232, 0, 0, |
@@ -2141,6 +2159,15 @@ static struct pci_device_id serial_pci_tbl[] = { | |||
2141 | { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_4S_20x_850, | 2159 | { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_4S_20x_850, |
2142 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, | 2160 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, |
2143 | pbn_b0_bt_4_921600 }, | 2161 | pbn_b0_bt_4_921600 }, |
2162 | { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_550, | ||
2163 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, | ||
2164 | pbn_b0_bt_8_921600 }, | ||
2165 | { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_650, | ||
2166 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, | ||
2167 | pbn_b0_bt_8_921600 }, | ||
2168 | { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_850, | ||
2169 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, | ||
2170 | pbn_b0_bt_8_921600 }, | ||
2144 | 2171 | ||
2145 | /* | 2172 | /* |
2146 | * Computone devices submitted by Doug McNash dmcnash@computone.com | 2173 | * Computone devices submitted by Doug McNash dmcnash@computone.com |