diff options
author | Lee Howard <lee.howard@mainpine.com> | 2008-10-21 08:50:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 12:35:18 -0400 |
commit | b80de369aa5c7c8ce7ff7a691e86e1dcc89accc6 (patch) | |
tree | e6c66b933cf0d84acc09d462eed2f68ead30d15d /drivers/serial/8250_pci.c | |
parent | 7106b4e333baeaf3c596e4d240438059b8a7616d (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/8250_pci.c')
-rw-r--r-- | drivers/serial/8250_pci.c | 24 |
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 |