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 |
