aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorLee Howard <lee.howard@mainpine.com>2008-10-21 08:50:14 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-23 12:35:18 -0400
commitb80de369aa5c7c8ce7ff7a691e86e1dcc89accc6 (patch)
treee6c66b933cf0d84acc09d462eed2f68ead30d15d /drivers/serial
parent7106b4e333baeaf3c596e4d240438059b8a7616d (diff)
8250: Add more OxSemi devices
These have the Mainpine PCI identifier on however Additional paranoia check for Tornado versions added by Alan Cox (and this time I remembered to do an stg refresh so that the corrections ended up in these patches not randomly attached to another diff -- Alan) Signed-off-by: Lee Howard <lee.howard@mainpine.com> Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/8250_pci.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 1bdb08b41f73..5450a0e5ecdb 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -1865,6 +1865,11 @@ static int pci_oxsemi_tornado_init(struct pci_dev *dev, struct pciserial_board *
1865 unsigned long deviceID; 1865 unsigned long deviceID;
1866 unsigned int number_uarts; 1866 unsigned int number_uarts;
1867 1867
1868 /* OxSemi Tornado devices are all 0xCxxx */
1869 if (dev->vendor == PCI_VENDOR_ID_OXSEMI &&
1870 (dev->device & 0xF000) != 0xC000)
1871 return 0;
1872
1868 p = pci_iomap(dev, 0, 5); 1873 p = pci_iomap(dev, 0, 5);
1869 if (p == NULL) 1874 if (p == NULL)
1870 return -ENOMEM; 1875 return -ENOMEM;
@@ -1893,7 +1898,8 @@ pciserial_init_ports(struct pci_dev *dev, struct pciserial_board *board)
1893 /* 1898 /*
1894 * Find number of ports on board 1899 * Find number of ports on board
1895 */ 1900 */
1896 if (dev->vendor == PCI_VENDOR_ID_OXSEMI) 1901 if (dev->vendor == PCI_VENDOR_ID_OXSEMI ||
1902 dev->vendor == PCI_VENDOR_ID_MAINPINE)
1897 pci_oxsemi_tornado_init(dev, board); 1903 pci_oxsemi_tornado_init(dev, board);
1898 1904
1899 nr_ports = board->num_ports; 1905 nr_ports = board->num_ports;
@@ -2510,7 +2516,21 @@ static struct pci_device_id serial_pci_tbl[] = {
2510 { PCI_VENDOR_ID_OXSEMI, 0xc4cf, /* OXPCIe200 1 Native UART */ 2516 { PCI_VENDOR_ID_OXSEMI, 0xc4cf, /* OXPCIe200 1 Native UART */
2511 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2517 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
2512 pbn_oxsemi_1_4000000 }, 2518 pbn_oxsemi_1_4000000 },
2513 2519 /*
2520 * Mainpine Inc. IQ Express "Rev3" utilizing OxSemi Tornado
2521 */
2522 { PCI_VENDOR_ID_MAINPINE, 0x4000, /* IQ Express 1 Port V.34 Super-G3 Fax */
2523 PCI_VENDOR_ID_MAINPINE, 0x4001, 0, 0,
2524 pbn_oxsemi_1_4000000 },
2525 { PCI_VENDOR_ID_MAINPINE, 0x4000, /* IQ Express 2 Port V.34 Super-G3 Fax */
2526 PCI_VENDOR_ID_MAINPINE, 0x4002, 0, 0,
2527 pbn_oxsemi_2_4000000 },
2528 { PCI_VENDOR_ID_MAINPINE, 0x4000, /* IQ Express 4 Port V.34 Super-G3 Fax */
2529 PCI_VENDOR_ID_MAINPINE, 0x4004, 0, 0,
2530 pbn_oxsemi_4_4000000 },
2531 { PCI_VENDOR_ID_MAINPINE, 0x4000, /* IQ Express 8 Port V.34 Super-G3 Fax */
2532 PCI_VENDOR_ID_MAINPINE, 0x4008, 0, 0,
2533 pbn_oxsemi_8_4000000 },
2514 /* 2534 /*
2515 * SBS Technologies, Inc. P-Octal and PMC-OCTPRO cards, 2535 * SBS Technologies, Inc. P-Octal and PMC-OCTPRO cards,
2516 * from skokodyn@yahoo.com 2536 * from skokodyn@yahoo.com