diff options
author | Ira W. Snyder <iws@ovro.caltech.edu> | 2009-12-21 19:26:45 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-02 17:43:08 -0500 |
commit | ac6ec5b1de5d1d5afcbe88d73c05df71dca0ac39 (patch) | |
tree | 4a850ab01492dafc82a94cccac9790bd8be0f32a /drivers/serial/8250_pci.c | |
parent | de538eb3441e8b9f7aedb3a37e46c005538451dc (diff) |
serial: 8250_pci: add support for MCS9865 / SYBA 6x Serial Port Card
This patch is heavily based on an earlier patch found on the linux-serial
mailing list [1], written by Darius Augulis.
The previous incarnation of this patch only supported a 2x serial port
card. I have added support for my SYBA 6x serial port card, and tested on
x86.
[1]: http://marc.info/?l=linux-serial&m=124975806304760
Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Cc: Darius Augulis <augulis.darius@gmail.com>
Cc: Greg KH <greg@kroah.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/serial/8250_pci.c')
-rw-r--r-- | drivers/serial/8250_pci.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c index b28af13c45a1..8b18c3ce3898 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/serial/8250_pci.c | |||
@@ -760,7 +760,8 @@ static int pci_netmos_init(struct pci_dev *dev) | |||
760 | /* subdevice 0x00PS means <P> parallel, <S> serial */ | 760 | /* subdevice 0x00PS means <P> parallel, <S> serial */ |
761 | unsigned int num_serial = dev->subsystem_device & 0xf; | 761 | unsigned int num_serial = dev->subsystem_device & 0xf; |
762 | 762 | ||
763 | if (dev->device == PCI_DEVICE_ID_NETMOS_9901) | 763 | if ((dev->device == PCI_DEVICE_ID_NETMOS_9901) || |
764 | (dev->device == PCI_DEVICE_ID_NETMOS_9865)) | ||
764 | return 0; | 765 | return 0; |
765 | if (dev->subsystem_vendor == PCI_VENDOR_ID_IBM && | 766 | if (dev->subsystem_vendor == PCI_VENDOR_ID_IBM && |
766 | dev->subsystem_device == 0x0299) | 767 | dev->subsystem_device == 0x0299) |
@@ -1479,6 +1480,7 @@ enum pci_board_num_t { | |||
1479 | 1480 | ||
1480 | pbn_b0_bt_1_115200, | 1481 | pbn_b0_bt_1_115200, |
1481 | pbn_b0_bt_2_115200, | 1482 | pbn_b0_bt_2_115200, |
1483 | pbn_b0_bt_4_115200, | ||
1482 | pbn_b0_bt_8_115200, | 1484 | pbn_b0_bt_8_115200, |
1483 | 1485 | ||
1484 | pbn_b0_bt_1_460800, | 1486 | pbn_b0_bt_1_460800, |
@@ -1703,6 +1705,12 @@ static struct pciserial_board pci_boards[] __devinitdata = { | |||
1703 | .base_baud = 115200, | 1705 | .base_baud = 115200, |
1704 | .uart_offset = 8, | 1706 | .uart_offset = 8, |
1705 | }, | 1707 | }, |
1708 | [pbn_b0_bt_4_115200] = { | ||
1709 | .flags = FL_BASE0|FL_BASE_BARS, | ||
1710 | .num_ports = 4, | ||
1711 | .base_baud = 115200, | ||
1712 | .uart_offset = 8, | ||
1713 | }, | ||
1706 | [pbn_b0_bt_8_115200] = { | 1714 | [pbn_b0_bt_8_115200] = { |
1707 | .flags = FL_BASE0|FL_BASE_BARS, | 1715 | .flags = FL_BASE0|FL_BASE_BARS, |
1708 | .num_ports = 8, | 1716 | .num_ports = 8, |
@@ -3649,6 +3657,18 @@ static struct pci_device_id serial_pci_tbl[] = { | |||
3649 | 0, 0, pbn_b0_1_115200 }, | 3657 | 0, 0, pbn_b0_1_115200 }, |
3650 | 3658 | ||
3651 | /* | 3659 | /* |
3660 | * Best Connectivity PCI Multi I/O cards | ||
3661 | */ | ||
3662 | |||
3663 | { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865, | ||
3664 | 0xA000, 0x1000, | ||
3665 | 0, 0, pbn_b0_1_115200 }, | ||
3666 | |||
3667 | { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865, | ||
3668 | 0xA000, 0x3004, | ||
3669 | 0, 0, pbn_b0_bt_4_115200 }, | ||
3670 | |||
3671 | /* | ||
3652 | * These entries match devices with class COMMUNICATION_SERIAL, | 3672 | * These entries match devices with class COMMUNICATION_SERIAL, |
3653 | * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL | 3673 | * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL |
3654 | */ | 3674 | */ |