--- /dev/null
+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
--- /dev/null
+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);
+
--- /dev/null
+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"},
--- /dev/null
+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)
--- /dev/null
+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);
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
--- /dev/null
+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 */
--- /dev/null
+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.
--- /dev/null
+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) },
--- /dev/null
+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 */