4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Adam Lee <adam....@canonical.com>

commit 89c043a6cb2d4525d48a38ed78d5f0f5672338b3 upstream.

Pericom PI7C9X795[1248] are Uno/Dual/Quad/Octal UART devices, this
patch enables them, also defines PCI_VENDOR_ID_PERICOM here.

Signed-off-by: Adam Lee <adam....@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 drivers/tty/serial/8250/8250_pci.c |   82 +++++++++++++++++++++++++++----------
 1 file changed, 61 insertions(+), 21 deletions(-)

--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -2000,6 +2000,12 @@ pci_wch_ch38x_setup(struct serial_privat
 
 #define PCI_DEVICE_ID_EXAR_XR17V8358   0x8358
 
+#define PCI_VENDOR_ID_PERICOM                  0x12D8
+#define PCI_DEVICE_ID_PERICOM_PI7C9X7951       0x7951
+#define PCI_DEVICE_ID_PERICOM_PI7C9X7952       0x7952
+#define PCI_DEVICE_ID_PERICOM_PI7C9X7954       0x7954
+#define PCI_DEVICE_ID_PERICOM_PI7C9X7958       0x7958
+
 /* Unknown vendors/cards - this should not be in linux/pci_ids.h */
 #define PCI_SUBDEVICE_ID_UNKNOWN_0x1584        0x1584
 #define PCI_SUBDEVICE_ID_UNKNOWN_0x1588        0x1588
@@ -2314,27 +2320,12 @@ static struct pci_serial_quirk pci_seria
         * Pericom
         */
        {
-               .vendor         = 0x12d8,
-               .device         = 0x7952,
-               .subvendor      = PCI_ANY_ID,
-               .subdevice      = PCI_ANY_ID,
-               .setup          = pci_pericom_setup,
-       },
-       {
-               .vendor         = 0x12d8,
-               .device         = 0x7954,
-               .subvendor      = PCI_ANY_ID,
-               .subdevice      = PCI_ANY_ID,
-               .setup          = pci_pericom_setup,
-       },
-       {
-               .vendor         = 0x12d8,
-               .device         = 0x7958,
-               .subvendor      = PCI_ANY_ID,
-               .subdevice      = PCI_ANY_ID,
-               .setup          = pci_pericom_setup,
+               .vendor         = PCI_VENDOR_ID_PERICOM,
+               .device         = PCI_ANY_ID,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
+               .setup          = pci_pericom_setup,
        },
-
        /*
         * PLX
         */
@@ -3031,6 +3022,10 @@ enum pci_board_num_t {
        pbn_fintek_8,
        pbn_fintek_12,
        pbn_wch384_4,
+       pbn_pericom_PI7C9X7951,
+       pbn_pericom_PI7C9X7952,
+       pbn_pericom_PI7C9X7954,
+       pbn_pericom_PI7C9X7958,
 };
 
 /*
@@ -3848,7 +3843,6 @@ static struct pciserial_board pci_boards
                .base_baud      = 115200,
                .first_offset   = 0x40,
        },
-
        [pbn_wch384_4] = {
                .flags          = FL_BASE0,
                .num_ports      = 4,
@@ -3856,6 +3850,33 @@ static struct pciserial_board pci_boards
                .uart_offset    = 8,
                .first_offset   = 0xC0,
        },
+       /*
+        * Pericom PI7C9X795[1248] Uno/Dual/Quad/Octal UART
+        */
+       [pbn_pericom_PI7C9X7951] = {
+               .flags          = FL_BASE0,
+               .num_ports      = 1,
+               .base_baud      = 921600,
+               .uart_offset    = 0x8,
+       },
+       [pbn_pericom_PI7C9X7952] = {
+               .flags          = FL_BASE0,
+               .num_ports      = 2,
+               .base_baud      = 921600,
+               .uart_offset    = 0x8,
+       },
+       [pbn_pericom_PI7C9X7954] = {
+               .flags          = FL_BASE0,
+               .num_ports      = 4,
+               .base_baud      = 921600,
+               .uart_offset    = 0x8,
+       },
+       [pbn_pericom_PI7C9X7958] = {
+               .flags          = FL_BASE0,
+               .num_ports      = 8,
+               .base_baud      = 921600,
+               .uart_offset    = 0x8,
+       },
 };
 
 static const struct pci_device_id blacklist[] = {
@@ -5117,6 +5138,25 @@ static struct pci_device_id serial_pci_t
                0,
                0, pbn_exar_XR17V8358 },
        /*
+        * Pericom PI7C9X795[1248] Uno/Dual/Quad/Octal UART
+        */
+       {   PCI_VENDOR_ID_PERICOM, PCI_DEVICE_ID_PERICOM_PI7C9X7951,
+               PCI_ANY_ID, PCI_ANY_ID,
+               0,
+               0, pbn_pericom_PI7C9X7951 },
+       {   PCI_VENDOR_ID_PERICOM, PCI_DEVICE_ID_PERICOM_PI7C9X7952,
+               PCI_ANY_ID, PCI_ANY_ID,
+               0,
+               0, pbn_pericom_PI7C9X7952 },
+       {   PCI_VENDOR_ID_PERICOM, PCI_DEVICE_ID_PERICOM_PI7C9X7954,
+               PCI_ANY_ID, PCI_ANY_ID,
+               0,
+               0, pbn_pericom_PI7C9X7954 },
+       {   PCI_VENDOR_ID_PERICOM, PCI_DEVICE_ID_PERICOM_PI7C9X7958,
+               PCI_ANY_ID, PCI_ANY_ID,
+               0,
+               0, pbn_pericom_PI7C9X7958 },
+       /*
         * Topic TP560 Data/Fax/Voice 56k modem (reported by Evan Clarke)
         */
        {       PCI_VENDOR_ID_TOPIC, PCI_DEVICE_ID_TOPIC_TP560,


--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to