From: Greg Kroah-Hartman Date: Sun, 13 Jul 2014 23:29:59 +0000 (-0700) Subject: 3.15-stable patches X-Git-Tag: v3.4.99~53 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7c104944e99022480984672278e2f2e2247d3b98;p=thirdparty%2Fkernel%2Fstable-queue.git 3.15-stable patches 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 --- 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 index 00000000000..c12871dd6bf --- /dev/null +++ b/queue-3.15/iio-ti_am335x_adc-fix-use-same-step-id-at-fifos-both-ends.patch @@ -0,0 +1,34 @@ +From baa3c65298c089a9014b4e523a14ec2885cca1bc Mon Sep 17 00:00:00 2001 +From: Jan Kardell +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 + +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 +Tested-by: Zubair Lutfullah +Signed-off-by: Jonathan Cameron +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..58201a2f39b --- /dev/null +++ b/queue-3.15/kernfs-introduce-kernfs_pin_sb.patch @@ -0,0 +1,79 @@ +From 4e26445faad366d67d7723622bf6a60a6f0f5993 Mon Sep 17 00:00:00 2001 +From: Li Zefan +Date: Mon, 30 Jun 2014 11:50:28 +0800 +Subject: kernfs: introduce kernfs_pin_sb() + +From: Li Zefan + +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 +Signed-off-by: Li Zefan +Signed-off-by: Tejun Heo +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..f3ac11765c7 --- /dev/null +++ b/queue-3.15/parisc-add-serial-ports-of-c8000-1ghz-machine-to-hardware-database.patch @@ -0,0 +1,28 @@ +From eadcc7208a2237016be7bdff4551ba7614da85c8 Mon Sep 17 00:00:00 2001 +From: Helge Deller +Date: Sat, 28 Jun 2014 17:44:51 +0200 +Subject: parisc: add serial ports of C8000/1GHz machine to hardware database + +From: Helge Deller + +commit eadcc7208a2237016be7bdff4551ba7614da85c8 upstream. + +Signed-off-by: Helge Deller +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..b12e1820493 --- /dev/null +++ b/queue-3.15/parisc-fix-fanotify_mark-syscall-on-32bit-compat-kernel.patch @@ -0,0 +1,78 @@ +From ab8a261ba5e2dd9206da640de5870cc31d568a7c Mon Sep 17 00:00:00 2001 +From: Helge Deller +Date: Thu, 10 Jul 2014 18:07:17 +0200 +Subject: parisc: fix fanotify_mark() syscall on 32bit compat kernel + +From: Helge Deller + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 + * + * 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 index 00000000000..fd7e4bffb51 --- /dev/null +++ b/queue-3.15/serial-test-for-no-tx-data-on-tx-restart.patch @@ -0,0 +1,128 @@ +From c557d392fbf5badd693ea1946a4317c87a26a716 Mon Sep 17 00:00:00 2001 +From: Peter Hurley +Date: Sun, 6 Jul 2014 11:29:52 -0400 +Subject: serial: Test for no tx data on tx restart + +From: Peter Hurley + +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 +Cc: Seth Bollinger +Cc: "David S. Miller" +Cc: Sam Ravnborg +Cc: Thomas Bogendoerfer +Signed-off-by: Peter Hurley +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-3.15/series b/queue-3.15/series index 1f6607f2bde..46ad9e0a984 100644 --- a/queue-3.15/series +++ b/queue-3.15/series @@ -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 index 00000000000..9ac59fcd31a --- /dev/null +++ b/queue-3.15/usb-cp210x-add-support-for-corsair-usb-dongle.patch @@ -0,0 +1,34 @@ +From b9326057a3d8447f5d2e74a7b521ccf21add2ec0 Mon Sep 17 00:00:00 2001 +From: Andras Kovacs +Date: Fri, 27 Jun 2014 14:50:11 +0200 +Subject: USB: cp210x: add support for Corsair usb dongle + +From: Andras Kovacs + +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 +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..a92064b390a --- /dev/null +++ b/queue-3.15/usb-ftdi_sio-add-extra-pid.patch @@ -0,0 +1,45 @@ +From 5a7fbe7e9ea0b1b9d7ffdba64db1faa3a259164c Mon Sep 17 00:00:00 2001 +From: Bert Vermeulen +Date: Tue, 8 Jul 2014 14:42:23 +0200 +Subject: USB: ftdi_sio: Add extra PID. + +From: Bert Vermeulen + +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 +Cc: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..c2c32da0e62 --- /dev/null +++ b/queue-3.15/usb-option-add-id-for-telewell-tw-lte-4g-v2.patch @@ -0,0 +1,31 @@ +From 3d28bd840b2d3981cd28caf5fe1df38f1344dd60 Mon Sep 17 00:00:00 2001 +From: Bernd Wachter +Date: Wed, 2 Jul 2014 12:36:48 +0300 +Subject: usb: option: Add ID for Telewell TW-LTE 4G v2 + +From: Bernd Wachter + +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 +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..f1fda48ad83 --- /dev/null +++ b/queue-3.15/usb-serial-ftdi_sio-add-infineon-triboard.patch @@ -0,0 +1,50 @@ +From d8279a40e50ad55539780aa617a32a53d7f0953e Mon Sep 17 00:00:00 2001 +From: Michal Sojka +Date: Thu, 10 Jul 2014 14:00:34 +0200 +Subject: USB: serial: ftdi_sio: Add Infineon Triboard + +From: Michal Sojka + +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 +Cc: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + 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 */