]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Nov 2015 17:41:03 +0000 (09:41 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Nov 2015 17:41:03 +0000 (09:41 -0800)
added patches:
serial-8250_pci-add-support-for-12-port-exar-boards.patch
serial-8250_pci-add-support-for-16-port-exar-boards.patch

queue-3.14/serial-8250_pci-add-support-for-12-port-exar-boards.patch [new file with mode: 0644]
queue-3.14/serial-8250_pci-add-support-for-16-port-exar-boards.patch [new file with mode: 0644]
queue-3.14/series

diff --git a/queue-3.14/serial-8250_pci-add-support-for-12-port-exar-boards.patch b/queue-3.14/serial-8250_pci-add-support-for-12-port-exar-boards.patch
new file mode 100644 (file)
index 0000000..630c27b
--- /dev/null
@@ -0,0 +1,78 @@
+From be32c0cf0462c36f482b5ddcff1d8371be1e183c Mon Sep 17 00:00:00 2001
+From: Soeren Grunewald <soeren.grunewald@desy.de>
+Date: Thu, 11 Jun 2015 09:25:04 +0200
+Subject: serial: 8250_pci: Add support for 12 port Exar boards
+
+From: Soeren Grunewald <soeren.grunewald@desy.de>
+
+commit be32c0cf0462c36f482b5ddcff1d8371be1e183c upstream.
+
+The Exar XR17V358 can also be combined with a XR17V354 chip to act as a
+single 12 port chip. This works the same way as the combining two XR17V358
+chips. But the reported device id then is 0x4358.
+
+Signed-off-by: Soeren Grunewald <soeren.grunewald@desy.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/tty/serial/8250/8250_pci.c |   21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+--- a/drivers/tty/serial/8250/8250_pci.c
++++ b/drivers/tty/serial/8250/8250_pci.c
+@@ -1772,6 +1772,7 @@ pci_wch_ch353_setup(struct serial_privat
+ #define PCI_DEVICE_ID_SUNIX_1999      0x1999
++#define PCI_DEVICE_ID_EXAR_XR17V4358  0x4358
+ #define PCI_DEVICE_ID_EXAR_XR17V8358  0x8358
+ /* Unknown vendors/cards - this should not be in linux/pci_ids.h */
+@@ -2270,6 +2271,13 @@ static struct pci_serial_quirk pci_seria
+       },
+       {
+               .vendor = PCI_VENDOR_ID_EXAR,
++              .device = PCI_DEVICE_ID_EXAR_XR17V4358,
++              .subvendor      = PCI_ANY_ID,
++              .subdevice      = PCI_ANY_ID,
++              .setup          = pci_xr17v35x_setup,
++      },
++      {
++              .vendor = PCI_VENDOR_ID_EXAR,
+               .device = PCI_DEVICE_ID_EXAR_XR17V8358,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
+@@ -2715,6 +2723,7 @@ enum pci_board_num_t {
+       pbn_exar_XR17V352,
+       pbn_exar_XR17V354,
+       pbn_exar_XR17V358,
++      pbn_exar_XR17V4358,
+       pbn_exar_XR17V8358,
+       pbn_exar_ibm_saturn,
+       pbn_pasemi_1682M,
+@@ -3385,6 +3394,14 @@ static struct pciserial_board pci_boards
+               .reg_shift      = 0,
+               .first_offset   = 0,
+       },
++      [pbn_exar_XR17V4358] = {
++              .flags          = FL_BASE0,
++              .num_ports      = 12,
++              .base_baud      = 7812500,
++              .uart_offset    = 0x400,
++              .reg_shift      = 0,
++              .first_offset   = 0,
++      },
+       [pbn_exar_XR17V8358] = {
+               .flags          = FL_BASE0,
+               .num_ports      = 16,
+@@ -4763,6 +4780,10 @@ static struct pci_device_id serial_pci_t
+               PCI_ANY_ID, PCI_ANY_ID,
+               0,
+               0, pbn_exar_XR17V358 },
++      {       PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V4358,
++              PCI_ANY_ID, PCI_ANY_ID,
++              0,
++              0, pbn_exar_XR17V4358 },
+       {       PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V8358,
+               PCI_ANY_ID, PCI_ANY_ID,
+               0,
diff --git a/queue-3.14/serial-8250_pci-add-support-for-16-port-exar-boards.patch b/queue-3.14/serial-8250_pci-add-support-for-16-port-exar-boards.patch
new file mode 100644 (file)
index 0000000..de06f11
--- /dev/null
@@ -0,0 +1,97 @@
+From 96a5d18bc1338786fecac73599f1681f59a59a8e Mon Sep 17 00:00:00 2001
+From: Soeren Grunewald <soeren.grunewald@desy.de>
+Date: Tue, 28 Apr 2015 16:29:49 +0200
+Subject: serial: 8250_pci: Add support for 16 port Exar boards
+
+From: Soeren Grunewald <soeren.grunewald@desy.de>
+
+commit 96a5d18bc1338786fecac73599f1681f59a59a8e upstream.
+
+The Exar XR17V358 chip usually provides only 8 ports. But two chips can be
+combined to act as a single 16 port chip. Therefor one chip is configured
+as master the second as slave by connecting the mode pin to VCC (master)
+or GND (slave).
+
+Then the master chip is reporting a different device-id depending on
+whether a slave is detected or not. The UARTs 8-15 are addressed from
+0x2000-0x3fff. So the offset of 0x400 from UART to UART can be used to
+address all 16 ports as before.
+
+See: https://www.exar.com/common/content/document.ashx?id=1587 page 11
+
+Signed-off-by: Soeren Grunewald <soeren.grunewald@desy.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/tty/serial/8250/8250_pci.c |   25 +++++++++++++++++++++++--
+ 1 file changed, 23 insertions(+), 2 deletions(-)
+
+--- a/drivers/tty/serial/8250/8250_pci.c
++++ b/drivers/tty/serial/8250/8250_pci.c
+@@ -1772,6 +1772,8 @@ pci_wch_ch353_setup(struct serial_privat
+ #define PCI_DEVICE_ID_SUNIX_1999      0x1999
++#define PCI_DEVICE_ID_EXAR_XR17V8358  0x8358
++
+ /* 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
+@@ -2266,6 +2268,13 @@ static struct pci_serial_quirk pci_seria
+               .subdevice      = PCI_ANY_ID,
+               .setup          = pci_xr17v35x_setup,
+       },
++      {
++              .vendor = PCI_VENDOR_ID_EXAR,
++              .device = PCI_DEVICE_ID_EXAR_XR17V8358,
++              .subvendor      = PCI_ANY_ID,
++              .subdevice      = PCI_ANY_ID,
++              .setup          = pci_xr17v35x_setup,
++      },
+       /*
+        * Xircom cards
+        */
+@@ -2706,6 +2715,7 @@ enum pci_board_num_t {
+       pbn_exar_XR17V352,
+       pbn_exar_XR17V354,
+       pbn_exar_XR17V358,
++      pbn_exar_XR17V8358,
+       pbn_exar_ibm_saturn,
+       pbn_pasemi_1682M,
+       pbn_ni8430_2,
+@@ -3375,6 +3385,14 @@ static struct pciserial_board pci_boards
+               .reg_shift      = 0,
+               .first_offset   = 0,
+       },
++      [pbn_exar_XR17V8358] = {
++              .flags          = FL_BASE0,
++              .num_ports      = 16,
++              .base_baud      = 7812500,
++              .uart_offset    = 0x400,
++              .reg_shift      = 0,
++              .first_offset   = 0,
++      },
+       [pbn_exar_ibm_saturn] = {
+               .flags          = FL_BASE0,
+               .num_ports      = 1,
+@@ -4731,7 +4749,7 @@ static struct pci_device_id serial_pci_t
+               0,
+               0, pbn_exar_XR17C158 },
+       /*
+-       * Exar Corp. XR17V35[248] Dual/Quad/Octal PCIe UARTs
++       * Exar Corp. XR17V[48]35[248] Dual/Quad/Octal/Hexa PCIe UARTs
+        */
+       {       PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V352,
+               PCI_ANY_ID, PCI_ANY_ID,
+@@ -4745,7 +4763,10 @@ static struct pci_device_id serial_pci_t
+               PCI_ANY_ID, PCI_ANY_ID,
+               0,
+               0, pbn_exar_XR17V358 },
+-
++      {       PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V8358,
++              PCI_ANY_ID, PCI_ANY_ID,
++              0,
++              0, pbn_exar_XR17V8358 },
+       /*
+        * Topic TP560 Data/Fax/Voice 56k modem (reported by Evan Clarke)
+        */
index d34e03ccc74eca32ab41e024ea8cbd4a51fb75c3..02567d7284352837da8eb5572a183d9672bc056c 100644 (file)
@@ -32,3 +32,5 @@ revert-md-allow-a-partially-recovered-device-to-be-hot-added-to-an-array.patch
 mvsas-fix-null-pointer-dereference-in-mvs_slot_task_free.patch
 ib-cm-fix-rb-tree-duplicate-free-and-use-after-free.patch
 md-raid5-fix-locking-in-handle_stripe_clean_event.patch
+serial-8250_pci-add-support-for-16-port-exar-boards.patch
+serial-8250_pci-add-support-for-12-port-exar-boards.patch