jsm: add support for additional Neo cards
authorBill Pemberton <wfp5p@worldbroken.com>
Sat, 30 Aug 2014 20:35:57 +0000 (16:35 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Sep 2014 20:15:49 +0000 (13:15 -0700)
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>
drivers/tty/serial/jsm/jsm.h
drivers/tty/serial/jsm/jsm_driver.c

index 844d5e4eb1aa9bf85d1018776b46f8bd354ae3c8..af7013488aeb96ff0f278f48a0467dbf5ca726d3 100644 (file)
@@ -67,6 +67,16 @@ do {                                                         \
 #define MAXPORTS       8
 #define MAX_STOPS_SENT 5
 
+/* Board ids */
+#define PCI_DEVICE_ID_NEO_4             0x00B0
+#define PCI_DEVICE_ID_NEO_1_422         0x00CC
+#define PCI_DEVICE_ID_NEO_1_422_485     0x00CD
+#define PCI_DEVICE_ID_NEO_2_422_485     0x00CE
+#define PCIE_DEVICE_ID_NEO_8            0x00F0
+#define PCIE_DEVICE_ID_NEO_4            0x00F1
+#define PCIE_DEVICE_ID_NEO_4RJ45        0x00F2
+#define PCIE_DEVICE_ID_NEO_8RJ45        0x00F3
+
 /* Board type definitions */
 
 #define T_NEO          0000
index a47d882d6743a9cc20b5aa2f38b73ab91a8b2f83..d2885a7bb090c4d6ecc2a59e0038e0302d076462 100644 (file)
@@ -93,12 +93,34 @@ static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        /* store the info for the board we've found */
        brd->boardnum = adapter_count++;
        brd->pci_dev = pdev;
-       if (pdev->device == PCIE_DEVICE_ID_NEO_4_IBM)
+
+       switch (pdev->device) {
+
+       case PCI_DEVICE_ID_NEO_2DB9:
+       case PCI_DEVICE_ID_NEO_2DB9PRI:
+       case PCI_DEVICE_ID_NEO_2RJ45:
+       case PCI_DEVICE_ID_NEO_2RJ45PRI:
+       case PCI_DEVICE_ID_NEO_2_422_485:
+               brd->maxports = 2;
+               break;
+
+       case PCI_DEVICE_ID_NEO_4:
+       case PCIE_DEVICE_ID_NEO_4:
+       case PCIE_DEVICE_ID_NEO_4RJ45:
+       case PCIE_DEVICE_ID_NEO_4_IBM:
                brd->maxports = 4;
-       else if (pdev->device == PCI_DEVICE_ID_DIGI_NEO_8)
+               break;
+
+       case PCI_DEVICE_ID_DIGI_NEO_8:
+       case PCIE_DEVICE_ID_NEO_8:
+       case PCIE_DEVICE_ID_NEO_8RJ45:
                brd->maxports = 8;
-       else
-               brd->maxports = 2;
+               break;
+
+       default:
+               brd->maxports = 1;
+               break;
+       }
 
        spin_lock_init(&brd->bd_intr_lock);
 
@@ -209,6 +231,14 @@ static struct pci_device_id jsm_pci_tbl[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2RJ45PRI), 0, 0, 3 },
        { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4_IBM), 0, 0, 4 },
        { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_NEO_8), 0, 0, 5 },
+       { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_4), 0, 0, 6 },
+       { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_1_422), 0, 0, 7 },
+       { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_1_422_485), 0, 0, 8 },
+       { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2_422_485), 0, 0, 9 },
+       { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_8), 0, 0, 10 },
+       { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4), 0, 0, 11 },
+       { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4RJ45), 0, 0, 12 },
+       { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_8RJ45), 0, 0, 13 },
        { 0, }
 };
 MODULE_DEVICE_TABLE(pci, jsm_pci_tbl);