This is a note to let you know that I've just added the patch titled

    serial: 8250_pci: Add support for Pericom PI7C9X795[1248]

to my tty git tree which can be found at
    git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
in the tty-next branch.

The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)

The patch will also be merged in the next major kernel release
during the merge window.

If you have any questions about this process, please let me know.


>From 89c043a6cb2d4525d48a38ed78d5f0f5672338b3 Mon Sep 17 00:00:00 2001
From: Adam Lee <[email protected]>
Date: Mon, 3 Aug 2015 13:28:13 +0800
Subject: serial: 8250_pci: Add support for Pericom PI7C9X795[1248]

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 <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/tty/serial/8250/8250_pci.c | 82 ++++++++++++++++++++++++++++----------
 1 file changed, 61 insertions(+), 21 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_pci.c 
b/drivers/tty/serial/8250/8250_pci.c
index dd4483f1d329..e12e91181781 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -2082,6 +2082,12 @@ pci_wch_ch38x_setup(struct serial_private *priv,
 #define PCIE_DEVICE_ID_WCH_CH382_2S1P  0x3250
 #define PCIE_DEVICE_ID_WCH_CH384_4S    0x3470
 
+#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
@@ -2396,27 +2402,12 @@ static struct pci_serial_quirk pci_serial_quirks[] 
__refdata = {
         * 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
         */
@@ -3121,6 +3112,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,
 };
 
 /*
@@ -3946,7 +3941,6 @@ static struct pciserial_board pci_boards[] = {
                .base_baud      = 115200,
                .first_offset   = 0x40,
        },
-
        [pbn_wch384_4] = {
                .flags          = FL_BASE0,
                .num_ports      = 4,
@@ -3954,6 +3948,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[] = {
@@ -5219,6 +5240,25 @@ static struct pci_device_id serial_pci_tbl[] = {
                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,
-- 
2.5.0


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

Reply via email to