lkml.org 
[lkml]   [2015]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 018/133] serial: 8250_pci: Add support for Pericom PI7C9X795[1248]
    Date
    3.16.7-ckt18 -stable review patch.  If anyone has any objections, please let me know.

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

    From: Adam Lee <adam.lee@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.lee@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [ luis: backported to 3.16: adjusted context ]
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    drivers/tty/serial/8250/8250_pci.c | 81 ++++++++++++++++++++++++++++----------
    1 file changed, 61 insertions(+), 20 deletions(-)

    diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
    index 18a2660ff734..ae4a16e8ee10 100644
    --- a/drivers/tty/serial/8250/8250_pci.c
    +++ b/drivers/tty/serial/8250/8250_pci.c
    @@ -1796,6 +1796,12 @@ pci_wch_ch353_setup(struct serial_private *priv,
    #define PCI_DEVICE_ID_SUNIX_1999 0x1999


    +#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
    @@ -2075,27 +2081,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
    */
    @@ -2757,6 +2748,10 @@ enum pci_board_num_t {
    pbn_fintek_4,
    pbn_fintek_8,
    pbn_fintek_12,
    + pbn_pericom_PI7C9X7951,
    + pbn_pericom_PI7C9X7952,
    + pbn_pericom_PI7C9X7954,
    + pbn_pericom_PI7C9X7958,
    };

    /*
    @@ -3542,6 +3537,33 @@ static struct pciserial_board pci_boards[] = {
    .base_baud = 115200,
    .first_offset = 0x40,
    },
    + /*
    + * 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[] = {
    @@ -4791,6 +4813,25 @@ static struct pci_device_id serial_pci_tbl[] = {
    0, pbn_exar_XR17V358 },

    /*
    + * 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,

    \
     
     \ /
      Last update: 2015-09-30 13:01    [W:6.943 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site