aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Pemberton <wfp5p@worldbroken.com>2014-08-30 16:35:57 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-09-08 16:15:49 -0400
commit293b22650f405cb08d72470b42254047138c9a55 (patch)
tree6d88190a4d08cfb6997eb7053ea79f0b790d30f8
parent69e273c0b0a3c337a521d083374c918dc52c666f (diff)
jsm: add support for additional Neo cards
Add device ids for additional Neo cards. The ids come from the dgnc driver. Signed-off-by: Bill Pemberton <wfp5p@worldbroken.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/tty/serial/jsm/jsm.h10
-rw-r--r--drivers/tty/serial/jsm/jsm_driver.c38
2 files changed, 44 insertions, 4 deletions
diff --git a/drivers/tty/serial/jsm/jsm.h b/drivers/tty/serial/jsm/jsm.h
index 844d5e4eb1aa..af7013488aeb 100644
--- a/drivers/tty/serial/jsm/jsm.h
+++ b/drivers/tty/serial/jsm/jsm.h
@@ -67,6 +67,16 @@ do { \
67#define MAXPORTS 8 67#define MAXPORTS 8
68#define MAX_STOPS_SENT 5 68#define MAX_STOPS_SENT 5
69 69
70/* Board ids */
71#define PCI_DEVICE_ID_NEO_4 0x00B0
72#define PCI_DEVICE_ID_NEO_1_422 0x00CC
73#define PCI_DEVICE_ID_NEO_1_422_485 0x00CD
74#define PCI_DEVICE_ID_NEO_2_422_485 0x00CE
75#define PCIE_DEVICE_ID_NEO_8 0x00F0
76#define PCIE_DEVICE_ID_NEO_4 0x00F1
77#define PCIE_DEVICE_ID_NEO_4RJ45 0x00F2
78#define PCIE_DEVICE_ID_NEO_8RJ45 0x00F3
79
70/* Board type definitions */ 80/* Board type definitions */
71 81
72#define T_NEO 0000 82#define T_NEO 0000
diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c
index a47d882d6743..d2885a7bb090 100644
--- a/drivers/tty/serial/jsm/jsm_driver.c
+++ b/drivers/tty/serial/jsm/jsm_driver.c
@@ -93,12 +93,34 @@ static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
93 /* store the info for the board we've found */ 93 /* store the info for the board we've found */
94 brd->boardnum = adapter_count++; 94 brd->boardnum = adapter_count++;
95 brd->pci_dev = pdev; 95 brd->pci_dev = pdev;
96 if (pdev->device == PCIE_DEVICE_ID_NEO_4_IBM) 96
97 switch (pdev->device) {
98
99 case PCI_DEVICE_ID_NEO_2DB9:
100 case PCI_DEVICE_ID_NEO_2DB9PRI:
101 case PCI_DEVICE_ID_NEO_2RJ45:
102 case PCI_DEVICE_ID_NEO_2RJ45PRI:
103 case PCI_DEVICE_ID_NEO_2_422_485:
104 brd->maxports = 2;
105 break;
106
107 case PCI_DEVICE_ID_NEO_4:
108 case PCIE_DEVICE_ID_NEO_4:
109 case PCIE_DEVICE_ID_NEO_4RJ45:
110 case PCIE_DEVICE_ID_NEO_4_IBM:
97 brd->maxports = 4; 111 brd->maxports = 4;
98 else if (pdev->device == PCI_DEVICE_ID_DIGI_NEO_8) 112 break;
113
114 case PCI_DEVICE_ID_DIGI_NEO_8:
115 case PCIE_DEVICE_ID_NEO_8:
116 case PCIE_DEVICE_ID_NEO_8RJ45:
99 brd->maxports = 8; 117 brd->maxports = 8;
100 else 118 break;
101 brd->maxports = 2; 119
120 default:
121 brd->maxports = 1;
122 break;
123 }
102 124
103 spin_lock_init(&brd->bd_intr_lock); 125 spin_lock_init(&brd->bd_intr_lock);
104 126
@@ -209,6 +231,14 @@ static struct pci_device_id jsm_pci_tbl[] = {
209 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2RJ45PRI), 0, 0, 3 }, 231 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2RJ45PRI), 0, 0, 3 },
210 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4_IBM), 0, 0, 4 }, 232 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4_IBM), 0, 0, 4 },
211 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_NEO_8), 0, 0, 5 }, 233 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_NEO_8), 0, 0, 5 },
234 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_4), 0, 0, 6 },
235 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_1_422), 0, 0, 7 },
236 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_1_422_485), 0, 0, 8 },
237 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2_422_485), 0, 0, 9 },
238 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_8), 0, 0, 10 },
239 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4), 0, 0, 11 },
240 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4RJ45), 0, 0, 12 },
241 { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_8RJ45), 0, 0, 13 },
212 { 0, } 242 { 0, }
213}; 243};
214MODULE_DEVICE_TABLE(pci, jsm_pci_tbl); 244MODULE_DEVICE_TABLE(pci, jsm_pci_tbl);