]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 13 Jul 2014 23:29:59 +0000 (16:29 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 13 Jul 2014 23:29:59 +0000 (16:29 -0700)
added patches:
iio-ti_am335x_adc-fix-use-same-step-id-at-fifos-both-ends.patch
kernfs-introduce-kernfs_pin_sb.patch
parisc-add-serial-ports-of-c8000-1ghz-machine-to-hardware-database.patch
parisc-fix-fanotify_mark-syscall-on-32bit-compat-kernel.patch
serial-test-for-no-tx-data-on-tx-restart.patch
usb-cp210x-add-support-for-corsair-usb-dongle.patch
usb-ftdi_sio-add-extra-pid.patch
usb-option-add-id-for-telewell-tw-lte-4g-v2.patch
usb-serial-ftdi_sio-add-infineon-triboard.patch

queue-3.15/iio-ti_am335x_adc-fix-use-same-step-id-at-fifos-both-ends.patch [new file with mode: 0644]
queue-3.15/kernfs-introduce-kernfs_pin_sb.patch [new file with mode: 0644]
queue-3.15/parisc-add-serial-ports-of-c8000-1ghz-machine-to-hardware-database.patch [new file with mode: 0644]
queue-3.15/parisc-fix-fanotify_mark-syscall-on-32bit-compat-kernel.patch [new file with mode: 0644]
queue-3.15/serial-test-for-no-tx-data-on-tx-restart.patch [new file with mode: 0644]
queue-3.15/series
queue-3.15/usb-cp210x-add-support-for-corsair-usb-dongle.patch [new file with mode: 0644]
queue-3.15/usb-ftdi_sio-add-extra-pid.patch [new file with mode: 0644]
queue-3.15/usb-option-add-id-for-telewell-tw-lte-4g-v2.patch [new file with mode: 0644]
queue-3.15/usb-serial-ftdi_sio-add-infineon-triboard.patch [new file with mode: 0644]

diff --git a/queue-3.15/iio-ti_am335x_adc-fix-use-same-step-id-at-fifos-both-ends.patch b/queue-3.15/iio-ti_am335x_adc-fix-use-same-step-id-at-fifos-both-ends.patch
new file mode 100644 (file)
index 0000000..c12871d
--- /dev/null
@@ -0,0 +1,34 @@
+From baa3c65298c089a9014b4e523a14ec2885cca1bc Mon Sep 17 00:00:00 2001
+From: Jan Kardell <jan.kardell@telliq.com>
+Date: Thu, 6 Nov 2014 22:18:00 +0000
+Subject: iio: ti_am335x_adc: Fix: Use same step id at FIFOs both ends
+
+From: Jan Kardell <jan.kardell@telliq.com>
+
+commit baa3c65298c089a9014b4e523a14ec2885cca1bc upstream.
+
+Since AI lines could be selected at will (linux-3.11) the sending
+and receiving ends of the FIFO does not agree about what step is used
+for a line. It only works if the last lines are used, like 5,6,7,
+and fails if ie 2,4,6 is selected in DT.
+
+Signed-off-by: Jan Kardell <jan.kardell@telliq.com>
+Tested-by: Zubair Lutfullah <zubair.lutfullah@gmail.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/adc/ti_am335x_adc.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/iio/adc/ti_am335x_adc.c
++++ b/drivers/iio/adc/ti_am335x_adc.c
+@@ -374,7 +374,7 @@ static int tiadc_read_raw(struct iio_dev
+                       return -EAGAIN;
+               }
+       }
+-      map_val = chan->channel + TOTAL_CHANNELS;
++      map_val = adc_dev->channel_step[chan->scan_index];
+       /*
+        * We check the complete FIFO. We programmed just one entry but in case
diff --git a/queue-3.15/kernfs-introduce-kernfs_pin_sb.patch b/queue-3.15/kernfs-introduce-kernfs_pin_sb.patch
new file mode 100644 (file)
index 0000000..58201a2
--- /dev/null
@@ -0,0 +1,79 @@
+From 4e26445faad366d67d7723622bf6a60a6f0f5993 Mon Sep 17 00:00:00 2001
+From: Li Zefan <lizefan@huawei.com>
+Date: Mon, 30 Jun 2014 11:50:28 +0800
+Subject: kernfs: introduce kernfs_pin_sb()
+
+From: Li Zefan <lizefan@huawei.com>
+
+commit 4e26445faad366d67d7723622bf6a60a6f0f5993 upstream.
+
+kernfs_pin_sb() tries to get a refcnt of the superblock.
+
+This will be used by cgroupfs.
+
+v2:
+- make kernfs_pin_sb() return the superblock.
+- drop kernfs_drop_sb().
+
+tj: Updated the comment a bit.
+
+[ This is a prerequisite for a bugfix. ]
+Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Li Zefan <lizefan@huawei.com>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/kernfs/mount.c      |   30 ++++++++++++++++++++++++++++++
+ include/linux/kernfs.h |    1 +
+ 2 files changed, 31 insertions(+)
+
+--- a/fs/kernfs/mount.c
++++ b/fs/kernfs/mount.c
+@@ -200,6 +200,36 @@ void kernfs_kill_sb(struct super_block *
+       kernfs_put(root_kn);
+ }
++/**
++ * kernfs_pin_sb: try to pin the superblock associated with a kernfs_root
++ * @kernfs_root: the kernfs_root in question
++ * @ns: the namespace tag
++ *
++ * Pin the superblock so the superblock won't be destroyed in subsequent
++ * operations.  This can be used to block ->kill_sb() which may be useful
++ * for kernfs users which dynamically manage superblocks.
++ *
++ * Returns NULL if there's no superblock associated to this kernfs_root, or
++ * -EINVAL if the superblock is being freed.
++ */
++struct super_block *kernfs_pin_sb(struct kernfs_root *root, const void *ns)
++{
++      struct kernfs_super_info *info;
++      struct super_block *sb = NULL;
++
++      mutex_lock(&kernfs_mutex);
++      list_for_each_entry(info, &root->supers, node) {
++              if (info->ns == ns) {
++                      sb = info->sb;
++                      if (!atomic_inc_not_zero(&info->sb->s_active))
++                              sb = ERR_PTR(-EINVAL);
++                      break;
++              }
++      }
++      mutex_unlock(&kernfs_mutex);
++      return sb;
++}
++
+ void __init kernfs_init(void)
+ {
+       kernfs_node_cache = kmem_cache_create("kernfs_node_cache",
+--- a/include/linux/kernfs.h
++++ b/include/linux/kernfs.h
+@@ -300,6 +300,7 @@ struct dentry *kernfs_mount_ns(struct fi
+                              struct kernfs_root *root, unsigned long magic,
+                              bool *new_sb_created, const void *ns);
+ void kernfs_kill_sb(struct super_block *sb);
++struct super_block *kernfs_pin_sb(struct kernfs_root *root, const void *ns);
+ void kernfs_init(void);
diff --git a/queue-3.15/parisc-add-serial-ports-of-c8000-1ghz-machine-to-hardware-database.patch b/queue-3.15/parisc-add-serial-ports-of-c8000-1ghz-machine-to-hardware-database.patch
new file mode 100644 (file)
index 0000000..f3ac117
--- /dev/null
@@ -0,0 +1,28 @@
+From eadcc7208a2237016be7bdff4551ba7614da85c8 Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Sat, 28 Jun 2014 17:44:51 +0200
+Subject: parisc: add serial ports of C8000/1GHz machine to hardware database
+
+From: Helge Deller <deller@gmx.de>
+
+commit eadcc7208a2237016be7bdff4551ba7614da85c8 upstream.
+
+Signed-off-by: Helge Deller <deller@gmx.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/parisc/kernel/hardware.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/arch/parisc/kernel/hardware.c
++++ b/arch/parisc/kernel/hardware.c
+@@ -1210,7 +1210,8 @@ static struct hp_hardware hp_hardware_li
+       {HPHW_FIO, 0x004, 0x00320, 0x0, "Metheus Frame Buffer"}, 
+       {HPHW_FIO, 0x004, 0x00340, 0x0, "BARCO CX4500 VME Grphx Cnsl"}, 
+       {HPHW_FIO, 0x004, 0x00360, 0x0, "Hughes TOG VME FDDI"}, 
+-      {HPHW_FIO, 0x076, 0x000AD, 0x00, "Crestone Peak RS-232"},
++      {HPHW_FIO, 0x076, 0x000AD, 0x0, "Crestone Peak Core RS-232"},
++      {HPHW_FIO, 0x077, 0x000AD, 0x0, "Crestone Peak Fast? Core RS-232"},
+       {HPHW_IOA, 0x185, 0x0000B, 0x00, "Java BC Summit Port"}, 
+       {HPHW_IOA, 0x1FF, 0x0000B, 0x00, "Hitachi Ghostview Summit Port"}, 
+       {HPHW_IOA, 0x580, 0x0000B, 0x10, "U2-IOA BC Runway Port"}, 
diff --git a/queue-3.15/parisc-fix-fanotify_mark-syscall-on-32bit-compat-kernel.patch b/queue-3.15/parisc-fix-fanotify_mark-syscall-on-32bit-compat-kernel.patch
new file mode 100644 (file)
index 0000000..b12e182
--- /dev/null
@@ -0,0 +1,78 @@
+From ab8a261ba5e2dd9206da640de5870cc31d568a7c Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Thu, 10 Jul 2014 18:07:17 +0200
+Subject: parisc: fix fanotify_mark() syscall on 32bit compat kernel
+
+From: Helge Deller <deller@gmx.de>
+
+commit ab8a261ba5e2dd9206da640de5870cc31d568a7c upstream.
+
+On parisc we can not use the existing compat implementation for fanotify_mark()
+because for the 64bit mask parameter the higher and lower 32bits are ordered
+differently than what the compat function expects from big endian
+architectures.
+
+Specifically:
+It finally turned out, that on hppa we end up with different assignments
+of parameters to kernel arguments depending on if we call the glibc
+wrapper function
+ int fanotify_mark (int __fanotify_fd, unsigned int __flags,
+                    uint64_t __mask, int __dfd, const char *__pathname);
+or directly calling the syscall manually
+ syscall(__NR_fanotify_mark, ...)
+
+Reason is, that the syscall() function is implemented as C-function and
+because we now have the sysno as first parameter in front of the other
+parameters the compiler will unexpectedly add an empty paramenter in
+front of the u64 value to ensure the correct calling alignment for 64bit
+values.
+This means, on hppa you can't simply use syscall() to call the kernel
+fanotify_mark() function directly, but you have to use the glibc
+function instead.
+
+This patch fixes the kernel in the hppa-arch specifc coding to adjust
+the parameters in a way as if userspace calls the glibc wrapper function
+fanotify_mark().
+
+Signed-off-by: Helge Deller <deller@gmx.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/parisc/kernel/sys_parisc32.c  |   10 ++++++++++
+ arch/parisc/kernel/syscall_table.S |    2 +-
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+--- a/arch/parisc/kernel/sys_parisc32.c
++++ b/arch/parisc/kernel/sys_parisc32.c
+@@ -4,6 +4,7 @@
+  * Copyright (C) 2000-2001 Hewlett Packard Company
+  * Copyright (C) 2000 John Marvin
+  * Copyright (C) 2001 Matthew Wilcox
++ * Copyright (C) 2014 Helge Deller <deller@gmx.de>
+  *
+  * These routines maintain argument size conversion between 32bit and 64bit
+  * environment. Based heavily on sys_ia32.c and sys_sparc32.c.
+@@ -57,3 +58,12 @@ asmlinkage long sys32_unimplemented(int
+       current->comm, current->pid, r20);
+     return -ENOSYS;
+ }
++
++asmlinkage long sys32_fanotify_mark(compat_int_t fanotify_fd, compat_uint_t flags,
++      compat_uint_t mask0, compat_uint_t mask1, compat_int_t dfd,
++      const char  __user * pathname)
++{
++      return sys_fanotify_mark(fanotify_fd, flags,
++                      ((__u64)mask1 << 32) | mask0,
++                       dfd, pathname);
++}
+--- a/arch/parisc/kernel/syscall_table.S
++++ b/arch/parisc/kernel/syscall_table.S
+@@ -418,7 +418,7 @@
+       ENTRY_SAME(accept4)             /* 320 */
+       ENTRY_SAME(prlimit64)
+       ENTRY_SAME(fanotify_init)
+-      ENTRY_COMP(fanotify_mark)
++      ENTRY_DIFF(fanotify_mark)
+       ENTRY_COMP(clock_adjtime)
+       ENTRY_SAME(name_to_handle_at)   /* 325 */
+       ENTRY_COMP(open_by_handle_at)
diff --git a/queue-3.15/serial-test-for-no-tx-data-on-tx-restart.patch b/queue-3.15/serial-test-for-no-tx-data-on-tx-restart.patch
new file mode 100644 (file)
index 0000000..fd7e4bf
--- /dev/null
@@ -0,0 +1,128 @@
+From c557d392fbf5badd693ea1946a4317c87a26a716 Mon Sep 17 00:00:00 2001
+From: Peter Hurley <peter@hurleysoftware.com>
+Date: Sun, 6 Jul 2014 11:29:52 -0400
+Subject: serial: Test for no tx data on tx restart
+
+From: Peter Hurley <peter@hurleysoftware.com>
+
+commit c557d392fbf5badd693ea1946a4317c87a26a716 upstream.
+
+Commit 717f3bbab3c7628736ef738fdbf3d9a28578c26c,
+'serial_core: Fix conditional start_tx on ring buffer not empty'
+exposes an incorrect assumption in several drivers' start_tx methods;
+the tx ring buffer can, in fact, be empty when restarting tx while
+performing flow control.
+
+Affected drivers:
+sunsab.c
+ip22zilog.c
+pmac_zilog.c
+sunzilog.c
+m32r_sio.c
+imx.c
+
+Other in-tree serial drivers either are not affected or already
+test for empty tx ring buffer before transmitting.
+
+Test for empty tx ring buffer in start_tx() method, after transmitting
+x_char (if applicable).
+
+Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi>
+Cc: Seth Bollinger <sethb@digi.com>
+Cc: "David S. Miller" <davem@davemloft.net>
+Cc: Sam Ravnborg <sam@ravnborg.org>
+Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
+Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/tty/serial/imx.c        |    3 +++
+ drivers/tty/serial/ip22zilog.c  |    2 ++
+ drivers/tty/serial/m32r_sio.c   |    8 +++++---
+ drivers/tty/serial/pmac_zilog.c |    3 +++
+ drivers/tty/serial/sunsab.c     |    3 +++
+ drivers/tty/serial/sunzilog.c   |    2 ++
+ 6 files changed, 18 insertions(+), 3 deletions(-)
+
+--- a/drivers/tty/serial/imx.c
++++ b/drivers/tty/serial/imx.c
+@@ -563,6 +563,9 @@ static void imx_start_tx(struct uart_por
+       struct imx_port *sport = (struct imx_port *)port;
+       unsigned long temp;
++      if (uart_circ_empty(&port.state->xmit))
++              return;
++
+       if (USE_IRDA(sport)) {
+               /* half duplex in IrDA mode; have to disable receive mode */
+               temp = readl(sport->port.membase + UCR4);
+--- a/drivers/tty/serial/ip22zilog.c
++++ b/drivers/tty/serial/ip22zilog.c
+@@ -603,6 +603,8 @@ static void ip22zilog_start_tx(struct ua
+       } else {
+               struct circ_buf *xmit = &port->state->xmit;
++              if (uart_circ_empty(xmit))
++                      return;
+               writeb(xmit->buf[xmit->tail], &channel->data);
+               ZSDELAY();
+               ZS_WSYNC(channel);
+--- a/drivers/tty/serial/m32r_sio.c
++++ b/drivers/tty/serial/m32r_sio.c
+@@ -266,9 +266,11 @@ static void m32r_sio_start_tx(struct uar
+       if (!(up->ier & UART_IER_THRI)) {
+               up->ier |= UART_IER_THRI;
+               serial_out(up, UART_IER, up->ier);
+-              serial_out(up, UART_TX, xmit->buf[xmit->tail]);
+-              xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
+-              up->port.icount.tx++;
++              if (!uart_circ_empty(xmit)) {
++                      serial_out(up, UART_TX, xmit->buf[xmit->tail]);
++                      xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
++                      up->port.icount.tx++;
++              }
+       }
+       while((serial_in(up, UART_LSR) & UART_EMPTY) != UART_EMPTY);
+ #else
+--- a/drivers/tty/serial/pmac_zilog.c
++++ b/drivers/tty/serial/pmac_zilog.c
+@@ -653,6 +653,8 @@ static void pmz_start_tx(struct uart_por
+       } else {
+               struct circ_buf *xmit = &port->state->xmit;
++              if (uart_circ_empty(xmit))
++                      goto out;
+               write_zsdata(uap, xmit->buf[xmit->tail]);
+               zssync(uap);
+               xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
+@@ -661,6 +663,7 @@ static void pmz_start_tx(struct uart_por
+               if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
+                       uart_write_wakeup(&uap->port);
+       }
++ out:
+       pmz_debug("pmz: start_tx() done.\n");
+ }
+--- a/drivers/tty/serial/sunsab.c
++++ b/drivers/tty/serial/sunsab.c
+@@ -427,6 +427,9 @@ static void sunsab_start_tx(struct uart_
+       struct circ_buf *xmit = &up->port.state->xmit;
+       int i;
++      if (uart_circ_empty(xmit))
++              return;
++
+       up->interrupt_mask1 &= ~(SAB82532_IMR1_ALLS|SAB82532_IMR1_XPR);
+       writeb(up->interrupt_mask1, &up->regs->w.imr1);
+       
+--- a/drivers/tty/serial/sunzilog.c
++++ b/drivers/tty/serial/sunzilog.c
+@@ -703,6 +703,8 @@ static void sunzilog_start_tx(struct uar
+       } else {
+               struct circ_buf *xmit = &port->state->xmit;
++              if (uart_circ_empty(xmit))
++                      return;
+               writeb(xmit->buf[xmit->tail], &channel->data);
+               ZSDELAY();
+               ZS_WSYNC(channel);
index 1f6607f2bde5519cd62d1e26d3b2e88a7c76f4a2..46ad9e0a9845c2f3df721bbd71e0837ae27f37c4 100644 (file)
@@ -6,4 +6,4 @@ iio-ti_am335x_adc-fix-use-same-step-id-at-fifos-both-ends.patch
 serial-test-for-no-tx-data-on-tx-restart.patch
 parisc-add-serial-ports-of-c8000-1ghz-machine-to-hardware-database.patch
 parisc-fix-fanotify_mark-syscall-on-32bit-compat-kernel.patch
-cgroup-fix-mount-failure-in-a-corner-case.patch
+kernfs-introduce-kernfs_pin_sb.patch
diff --git a/queue-3.15/usb-cp210x-add-support-for-corsair-usb-dongle.patch b/queue-3.15/usb-cp210x-add-support-for-corsair-usb-dongle.patch
new file mode 100644 (file)
index 0000000..9ac59fc
--- /dev/null
@@ -0,0 +1,34 @@
+From b9326057a3d8447f5d2e74a7b521ccf21add2ec0 Mon Sep 17 00:00:00 2001
+From: Andras Kovacs <andras@sth.sze.hu>
+Date: Fri, 27 Jun 2014 14:50:11 +0200
+Subject: USB: cp210x: add support for Corsair usb dongle
+
+From: Andras Kovacs <andras@sth.sze.hu>
+
+commit b9326057a3d8447f5d2e74a7b521ccf21add2ec0 upstream.
+
+Corsair USB Dongles are shipped with Corsair AXi series PSUs.
+These are cp210x serial usb devices, so make driver detect these.
+I have a program, that can get information from these PSUs.
+
+Tested with 2 different dongles shipped with Corsair AX860i and
+AX1200i units.
+
+Signed-off-by: Andras Kovacs <andras@sth.sze.hu>
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/cp210x.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/serial/cp210x.c
++++ b/drivers/usb/serial/cp210x.c
+@@ -153,6 +153,7 @@ static const struct usb_device_id id_tab
+       { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */
+       { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */
+       { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */
++      { USB_DEVICE(0x1B1C, 0x1C00) }, /* Corsair USB Dongle */
+       { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */
+       { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */
+       { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */
diff --git a/queue-3.15/usb-ftdi_sio-add-extra-pid.patch b/queue-3.15/usb-ftdi_sio-add-extra-pid.patch
new file mode 100644 (file)
index 0000000..a92064b
--- /dev/null
@@ -0,0 +1,45 @@
+From 5a7fbe7e9ea0b1b9d7ffdba64db1faa3a259164c Mon Sep 17 00:00:00 2001
+From: Bert Vermeulen <bert@biot.com>
+Date: Tue, 8 Jul 2014 14:42:23 +0200
+Subject: USB: ftdi_sio: Add extra PID.
+
+From: Bert Vermeulen <bert@biot.com>
+
+commit 5a7fbe7e9ea0b1b9d7ffdba64db1faa3a259164c upstream.
+
+This patch adds PID 0x0003 to the VID 0x128d (Testo). At least the
+Testo 435-4 uses this, likely other gear as well.
+
+Signed-off-by: Bert Vermeulen <bert@biot.com>
+Cc: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/ftdi_sio.c     |    3 ++-
+ drivers/usb/serial/ftdi_sio_ids.h |    3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -720,7 +720,8 @@ static const struct usb_device_id id_tab
+       { USB_DEVICE(FTDI_VID, FTDI_ACG_HFDUAL_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_YEI_SERVOCENTER31_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_THORLABS_PID) },
+-      { USB_DEVICE(TESTO_VID, TESTO_USB_INTERFACE_PID) },
++      { USB_DEVICE(TESTO_VID, TESTO_1_PID) },
++      { USB_DEVICE(TESTO_VID, TESTO_3_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_GAMMA_SCOUT_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_TACTRIX_OPENPORT_13M_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_TACTRIX_OPENPORT_13S_PID) },
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -798,7 +798,8 @@
+  * Submitted by Colin Leroy
+  */
+ #define TESTO_VID                     0x128D
+-#define TESTO_USB_INTERFACE_PID               0x0001
++#define TESTO_1_PID                   0x0001
++#define TESTO_3_PID                   0x0003
+ /*
+  * Mobility Electronics products.
diff --git a/queue-3.15/usb-option-add-id-for-telewell-tw-lte-4g-v2.patch b/queue-3.15/usb-option-add-id-for-telewell-tw-lte-4g-v2.patch
new file mode 100644 (file)
index 0000000..c2c32da
--- /dev/null
@@ -0,0 +1,31 @@
+From 3d28bd840b2d3981cd28caf5fe1df38f1344dd60 Mon Sep 17 00:00:00 2001
+From: Bernd Wachter <bernd.wachter@jolla.com>
+Date: Wed, 2 Jul 2014 12:36:48 +0300
+Subject: usb: option: Add ID for Telewell TW-LTE 4G v2
+
+From: Bernd Wachter <bernd.wachter@jolla.com>
+
+commit 3d28bd840b2d3981cd28caf5fe1df38f1344dd60 upstream.
+
+Add ID of the Telewell 4G v2 hardware to option driver to get legacy
+serial interface working
+
+Signed-off-by: Bernd Wachter <bernd.wachter@jolla.com>
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -1487,6 +1487,8 @@ static const struct usb_device_id option
+               .driver_info = (kernel_ulong_t)&net_intf2_blacklist },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff),  /* ZTE MF91 */
+               .driver_info = (kernel_ulong_t)&net_intf2_blacklist },
++      { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1428, 0xff, 0xff, 0xff),  /* Telewell TW-LTE 4G v2 */
++              .driver_info = (kernel_ulong_t)&net_intf2_blacklist },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) },
diff --git a/queue-3.15/usb-serial-ftdi_sio-add-infineon-triboard.patch b/queue-3.15/usb-serial-ftdi_sio-add-infineon-triboard.patch
new file mode 100644 (file)
index 0000000..f1fda48
--- /dev/null
@@ -0,0 +1,50 @@
+From d8279a40e50ad55539780aa617a32a53d7f0953e Mon Sep 17 00:00:00 2001
+From: Michal Sojka <sojkam1@fel.cvut.cz>
+Date: Thu, 10 Jul 2014 14:00:34 +0200
+Subject: USB: serial: ftdi_sio: Add Infineon Triboard
+
+From: Michal Sojka <sojkam1@fel.cvut.cz>
+
+commit d8279a40e50ad55539780aa617a32a53d7f0953e upstream.
+
+This adds support for Infineon TriBoard TC1798 [1]. Only interface 1
+is used as serial line (see [2], Figure 8-6).
+
+[1] http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/tricore-tm-development-tools-software-and-kits/starterkits-and-evaluation-boards/starter-kit-tc1798/channel.html?channel=db3a304333b8a7ca0133cfa3d73e4268
+[2] http://www.infineon.com/dgdl/TriBoardManual-TC1798-V10.pdf?folderId=db3a304412b407950112b409ae7c0343&fileId=db3a304333b8a7ca0133cfae99fe426a
+
+Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
+Cc: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/ftdi_sio.c     |    2 ++
+ drivers/usb/serial/ftdi_sio_ids.h |    6 ++++++
+ 2 files changed, 8 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -945,6 +945,8 @@ static const struct usb_device_id id_tab
+       { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_2_PID) },
+       { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_3_PID) },
+       { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_4_PID) },
++      /* Infineon Devices */
++      { USB_DEVICE_INTERFACE_NUMBER(INFINEON_VID, INFINEON_TRIBOARD_PID, 1) },
+       { }                                     /* Terminating entry */
+ };
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -584,6 +584,12 @@
+ #define RATOC_PRODUCT_ID_USB60F       0xb020
+ /*
++ * Infineon Technologies
++ */
++#define INFINEON_VID          0x058b
++#define INFINEON_TRIBOARD_PID 0x0028 /* DAS JTAG TriBoard TC1798 V1.0 */
++
++/*
+  * Acton Research Corp.
+  */
+ #define ACTON_VID             0x0647  /* Vendor ID */