From: Greg Kroah-Hartman Date: Thu, 4 Dec 2014 23:33:39 +0000 (-0800) Subject: 3.10-stable patches X-Git-Tag: v3.10.62~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=44a4135d3c2346f81ccefbb1aab56b863312708b;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10-stable patches added patches: alsa-usb-audio-add-ctrl-message-delay-quirk-for.patch can-esd_usb2-fix-memory-leak-on-disconnect.patch usb-keyspan-fix-overrun-error-reporting.patch usb-keyspan-fix-tty-line-status-reporting.patch usb-quirks-add-reset-resume-quirk-for-ms-wireless-laser-mouse-6000.patch usb-serial-cp210x-add-ids-for-cel-meshconnect-usb-stick.patch usb-serial-ftdi_sio-add-pids-for-matrix-orbital-products.patch usb-ssu100-fix-overrun-error-reporting.patch usb-xhci-don-t-start-a-halted-endpoint-before-its-new-dequeue-is-set.patch --- diff --git a/queue-3.10/alsa-usb-audio-add-ctrl-message-delay-quirk-for.patch b/queue-3.10/alsa-usb-audio-add-ctrl-message-delay-quirk-for.patch new file mode 100644 index 00000000000..a0267da806e --- /dev/null +++ b/queue-3.10/alsa-usb-audio-add-ctrl-message-delay-quirk-for.patch @@ -0,0 +1,56 @@ +From 6e84a8d7ac3ba246ef44e313e92bc16a1da1b04a Mon Sep 17 00:00:00 2001 +From: Jurgen Kramer +Date: Sat, 15 Nov 2014 14:01:21 +0100 +Subject: ALSA: usb-audio: Add ctrl message delay quirk for + Marantz/Denon devices + +From: Jurgen Kramer + +commit 6e84a8d7ac3ba246ef44e313e92bc16a1da1b04a upstream. + +This patch adds a USB control message delay quirk for a few specific Marantz/Denon +devices. Without the delay the DACs will not work properly and produces the +following type of messages: + +Nov 15 10:09:21 orwell kernel: [ 91.342880] usb 3-13: clock source 41 is not valid, cannot use +Nov 15 10:09:21 orwell kernel: [ 91.343775] usb 3-13: clock source 41 is not valid, cannot use + +There are likely other Marantz/Denon devices using the same USB module which exhibit the +same problems. But as this cannot be verified I limited the patch to the devices +I could test. + +The following two devices are covered by this path: +- Marantz SA-14S1 +- Marantz HD-DAC1 + +Signed-off-by: Jurgen Kramer +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/quirks.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -914,6 +914,20 @@ void snd_usb_ctl_msg_quirk(struct usb_de + if ((le16_to_cpu(dev->descriptor.idVendor) == 0x23ba) && + (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS) + mdelay(20); ++ ++ /* Marantz/Denon devices with USB DAC functionality need a delay ++ * after each class compliant request ++ */ ++ if ((le16_to_cpu(dev->descriptor.idVendor) == 0x154e) && ++ (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS) { ++ ++ switch (le16_to_cpu(dev->descriptor.idProduct)) { ++ case 0x3005: /* Marantz HD-DAC1 */ ++ case 0x3006: /* Marantz SA-14S1 */ ++ mdelay(20); ++ break; ++ } ++ } + } + + /* diff --git a/queue-3.10/can-esd_usb2-fix-memory-leak-on-disconnect.patch b/queue-3.10/can-esd_usb2-fix-memory-leak-on-disconnect.patch new file mode 100644 index 00000000000..d2e975ce3fb --- /dev/null +++ b/queue-3.10/can-esd_usb2-fix-memory-leak-on-disconnect.patch @@ -0,0 +1,33 @@ +From efbd50d2f62fc1f69a3dcd153e63ba28cc8eb27f Mon Sep 17 00:00:00 2001 +From: Alexey Khoroshilov +Date: Sat, 11 Oct 2014 00:31:07 +0400 +Subject: can: esd_usb2: fix memory leak on disconnect + +From: Alexey Khoroshilov + +commit efbd50d2f62fc1f69a3dcd153e63ba28cc8eb27f upstream. + +It seems struct esd_usb2 dev is not deallocated on disconnect. The patch adds +the missing deallocation. + +Found by Linux Driver Verification project (linuxtesting.org). + +Signed-off-by: Alexey Khoroshilov +Acked-by: Matthias Fuchs +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/can/usb/esd_usb2.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/net/can/usb/esd_usb2.c ++++ b/drivers/net/can/usb/esd_usb2.c +@@ -1132,6 +1132,7 @@ static void esd_usb2_disconnect(struct u + } + } + unlink_all_urbs(dev); ++ kfree(dev); + } + } + diff --git a/queue-3.10/series b/queue-3.10/series index e67c71511fa..2896f9ee7ba 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -20,3 +20,12 @@ of-base-fix-powerpc-address-parsing-hack.patch powerpc-pseries-honor-the-generic-no_64bit_msi-flag.patch powerpc-pseries-fix-endiannes-issue-in-rtas-call-from-xmon.patch iio-fix-iio_event_code_extract_dir-bit-mask.patch +usb-ssu100-fix-overrun-error-reporting.patch +usb-keyspan-fix-overrun-error-reporting.patch +usb-keyspan-fix-tty-line-status-reporting.patch +usb-serial-cp210x-add-ids-for-cel-meshconnect-usb-stick.patch +usb-serial-ftdi_sio-add-pids-for-matrix-orbital-products.patch +usb-quirks-add-reset-resume-quirk-for-ms-wireless-laser-mouse-6000.patch +usb-xhci-don-t-start-a-halted-endpoint-before-its-new-dequeue-is-set.patch +can-esd_usb2-fix-memory-leak-on-disconnect.patch +alsa-usb-audio-add-ctrl-message-delay-quirk-for.patch diff --git a/queue-3.10/usb-keyspan-fix-overrun-error-reporting.patch b/queue-3.10/usb-keyspan-fix-overrun-error-reporting.patch new file mode 100644 index 00000000000..9dfe09744bb --- /dev/null +++ b/queue-3.10/usb-keyspan-fix-overrun-error-reporting.patch @@ -0,0 +1,60 @@ +From 855515a6d3731242d85850a206f2ec084c917338 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Tue, 18 Nov 2014 11:25:20 +0100 +Subject: USB: keyspan: fix overrun-error reporting + +From: Johan Hovold + +commit 855515a6d3731242d85850a206f2ec084c917338 upstream. + +Fix reporting of overrun errors, which are not associated with a +character. Instead insert a null character and report only once. + +Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/keyspan.c | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +--- a/drivers/usb/serial/keyspan.c ++++ b/drivers/usb/serial/keyspan.c +@@ -308,12 +308,13 @@ static void usa26_indat_callback(struct + if ((data[0] & 0x80) == 0) { + /* no errors on individual bytes, only + possible overrun err */ +- if (data[0] & RXERROR_OVERRUN) +- err = TTY_OVERRUN; +- else +- err = 0; ++ if (data[0] & RXERROR_OVERRUN) { ++ tty_insert_flip_char(&port->port, 0, ++ TTY_OVERRUN); ++ } + for (i = 1; i < urb->actual_length ; ++i) +- tty_insert_flip_char(&port->port, data[i], err); ++ tty_insert_flip_char(&port->port, data[i], ++ TTY_NORMAL); + } else { + /* some bytes had errors, every byte has status */ + dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__); +@@ -796,13 +797,13 @@ static void usa90_indat_callback(struct + if ((data[0] & 0x80) == 0) { + /* no errors on individual bytes, only + possible overrun err*/ +- if (data[0] & RXERROR_OVERRUN) +- err = TTY_OVERRUN; +- else +- err = 0; ++ if (data[0] & RXERROR_OVERRUN) { ++ tty_insert_flip_char(&port->port, 0, ++ TTY_OVERRUN); ++ } + for (i = 1; i < urb->actual_length ; ++i) + tty_insert_flip_char(&port->port, +- data[i], err); ++ data[i], TTY_NORMAL); + } else { + /* some bytes had errors, every byte has status */ + dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__); diff --git a/queue-3.10/usb-keyspan-fix-tty-line-status-reporting.patch b/queue-3.10/usb-keyspan-fix-tty-line-status-reporting.patch new file mode 100644 index 00000000000..1c2cc2fc1a1 --- /dev/null +++ b/queue-3.10/usb-keyspan-fix-tty-line-status-reporting.patch @@ -0,0 +1,135 @@ +From 5d1678a33c731b56e245e888fdae5e88efce0997 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Tue, 18 Nov 2014 11:25:19 +0100 +Subject: USB: keyspan: fix tty line-status reporting + +From: Johan Hovold + +commit 5d1678a33c731b56e245e888fdae5e88efce0997 upstream. + +Fix handling of TTY error flags, which are not bitmasks and must +specifically not be ORed together as this prevents the line discipline +from recognising them. + +Also insert null characters when reporting overrun errors as these are +not associated with the received character. + +Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/keyspan.c | 76 +++++++++++++++++++++++++++---------------- + 1 file changed, 48 insertions(+), 28 deletions(-) + +--- a/drivers/usb/serial/keyspan.c ++++ b/drivers/usb/serial/keyspan.c +@@ -319,14 +319,19 @@ static void usa26_indat_callback(struct + /* some bytes had errors, every byte has status */ + dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__); + for (i = 0; i + 1 < urb->actual_length; i += 2) { +- int stat = data[i], flag = 0; +- if (stat & RXERROR_OVERRUN) +- flag |= TTY_OVERRUN; +- if (stat & RXERROR_FRAMING) +- flag |= TTY_FRAME; +- if (stat & RXERROR_PARITY) +- flag |= TTY_PARITY; ++ int stat = data[i]; ++ int flag = TTY_NORMAL; ++ ++ if (stat & RXERROR_OVERRUN) { ++ tty_insert_flip_char(&port->port, 0, ++ TTY_OVERRUN); ++ } + /* XXX should handle break (0x10) */ ++ if (stat & RXERROR_PARITY) ++ flag = TTY_PARITY; ++ else if (stat & RXERROR_FRAMING) ++ flag = TTY_FRAME; ++ + tty_insert_flip_char(&port->port, data[i+1], + flag); + } +@@ -673,14 +678,19 @@ static void usa49_indat_callback(struct + } else { + /* some bytes had errors, every byte has status */ + for (i = 0; i + 1 < urb->actual_length; i += 2) { +- int stat = data[i], flag = 0; +- if (stat & RXERROR_OVERRUN) +- flag |= TTY_OVERRUN; +- if (stat & RXERROR_FRAMING) +- flag |= TTY_FRAME; +- if (stat & RXERROR_PARITY) +- flag |= TTY_PARITY; ++ int stat = data[i]; ++ int flag = TTY_NORMAL; ++ ++ if (stat & RXERROR_OVERRUN) { ++ tty_insert_flip_char(&port->port, 0, ++ TTY_OVERRUN); ++ } + /* XXX should handle break (0x10) */ ++ if (stat & RXERROR_PARITY) ++ flag = TTY_PARITY; ++ else if (stat & RXERROR_FRAMING) ++ flag = TTY_FRAME; ++ + tty_insert_flip_char(&port->port, data[i+1], + flag); + } +@@ -737,15 +747,19 @@ static void usa49wg_indat_callback(struc + */ + for (x = 0; x + 1 < len && + i + 1 < urb->actual_length; x += 2) { +- int stat = data[i], flag = 0; ++ int stat = data[i]; ++ int flag = TTY_NORMAL; + +- if (stat & RXERROR_OVERRUN) +- flag |= TTY_OVERRUN; +- if (stat & RXERROR_FRAMING) +- flag |= TTY_FRAME; +- if (stat & RXERROR_PARITY) +- flag |= TTY_PARITY; ++ if (stat & RXERROR_OVERRUN) { ++ tty_insert_flip_char(&port->port, 0, ++ TTY_OVERRUN); ++ } + /* XXX should handle break (0x10) */ ++ if (stat & RXERROR_PARITY) ++ flag = TTY_PARITY; ++ else if (stat & RXERROR_FRAMING) ++ flag = TTY_FRAME; ++ + tty_insert_flip_char(&port->port, data[i+1], + flag); + i += 2; +@@ -808,14 +822,20 @@ static void usa90_indat_callback(struct + /* some bytes had errors, every byte has status */ + dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__); + for (i = 0; i + 1 < urb->actual_length; i += 2) { +- int stat = data[i], flag = 0; +- if (stat & RXERROR_OVERRUN) +- flag |= TTY_OVERRUN; +- if (stat & RXERROR_FRAMING) +- flag |= TTY_FRAME; +- if (stat & RXERROR_PARITY) +- flag |= TTY_PARITY; ++ int stat = data[i]; ++ int flag = TTY_NORMAL; ++ ++ if (stat & RXERROR_OVERRUN) { ++ tty_insert_flip_char( ++ &port->port, 0, ++ TTY_OVERRUN); ++ } + /* XXX should handle break (0x10) */ ++ if (stat & RXERROR_PARITY) ++ flag = TTY_PARITY; ++ else if (stat & RXERROR_FRAMING) ++ flag = TTY_FRAME; ++ + tty_insert_flip_char(&port->port, + data[i+1], flag); + } diff --git a/queue-3.10/usb-quirks-add-reset-resume-quirk-for-ms-wireless-laser-mouse-6000.patch b/queue-3.10/usb-quirks-add-reset-resume-quirk-for-ms-wireless-laser-mouse-6000.patch new file mode 100644 index 00000000000..f4d431919a9 --- /dev/null +++ b/queue-3.10/usb-quirks-add-reset-resume-quirk-for-ms-wireless-laser-mouse-6000.patch @@ -0,0 +1,32 @@ +From 263e80b43559a6103e178a9176938ce171b23872 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 24 Nov 2014 11:22:38 +0100 +Subject: usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000 + +From: Hans de Goede + +commit 263e80b43559a6103e178a9176938ce171b23872 upstream. + +This wireless mouse receiver needs a reset-resume quirk to properly come +out of reset. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1165206 +Signed-off-by: Hans de Goede +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/core/quirks.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -43,6 +43,9 @@ static const struct usb_device_id usb_qu + /* Creative SB Audigy 2 NX */ + { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, + ++ /* Microsoft Wireless Laser Mouse 6000 Receiver */ ++ { USB_DEVICE(0x045e, 0x00e1), .driver_info = USB_QUIRK_RESET_RESUME }, ++ + /* Microsoft LifeCam-VX700 v2.0 */ + { USB_DEVICE(0x045e, 0x0770), .driver_info = USB_QUIRK_RESET_RESUME }, + diff --git a/queue-3.10/usb-serial-cp210x-add-ids-for-cel-meshconnect-usb-stick.patch b/queue-3.10/usb-serial-cp210x-add-ids-for-cel-meshconnect-usb-stick.patch new file mode 100644 index 00000000000..5e9be92c868 --- /dev/null +++ b/queue-3.10/usb-serial-cp210x-add-ids-for-cel-meshconnect-usb-stick.patch @@ -0,0 +1,27 @@ +From ffcfe30ebd8dd703d0fc4324ffe56ea21f5479f4 Mon Sep 17 00:00:00 2001 +From: Preston Fick +Date: Fri, 7 Nov 2014 23:26:11 -0600 +Subject: USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick + +From: Preston Fick + +commit ffcfe30ebd8dd703d0fc4324ffe56ea21f5479f4 upstream. + +Signed-off-by: Preston Fick +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 +@@ -120,6 +120,7 @@ static const struct usb_device_id id_tab + { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ + { USB_DEVICE(0x10C4, 0x8664) }, /* AC-Services CAN-IF */ + { USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */ ++ { USB_DEVICE(0x10C4, 0x8875) }, /* CEL MeshConnect USB Stick */ + { USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */ + { USB_DEVICE(0x10C4, 0x88A5) }, /* Planet Innovation Ingeni ZigBee USB Device */ + { USB_DEVICE(0x10C4, 0x8946) }, /* Ketra N1 Wireless Interface */ diff --git a/queue-3.10/usb-serial-ftdi_sio-add-pids-for-matrix-orbital-products.patch b/queue-3.10/usb-serial-ftdi_sio-add-pids-for-matrix-orbital-products.patch new file mode 100644 index 00000000000..53198545664 --- /dev/null +++ b/queue-3.10/usb-serial-ftdi_sio-add-pids-for-matrix-orbital-products.patch @@ -0,0 +1,118 @@ +From 204ec6e07ea7aff863df0f7c53301f9cbbfbb9d3 Mon Sep 17 00:00:00 2001 +From: Troy Clark +Date: Mon, 17 Nov 2014 14:33:17 -0800 +Subject: usb: serial: ftdi_sio: add PIDs for Matrix Orbital products + +From: Troy Clark + +commit 204ec6e07ea7aff863df0f7c53301f9cbbfbb9d3 upstream. + +Add PIDs for new Matrix Orbital GTT series products. + +Signed-off-by: Troy Clark +[johan: shorten commit message ] +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/ftdi_sio.c | 33 ++++++++++++++++++++++++++++++++ + drivers/usb/serial/ftdi_sio_ids.h | 39 ++++++++++++++++++++++++++++++++++---- + 2 files changed, 68 insertions(+), 4 deletions(-) + +--- a/drivers/usb/serial/ftdi_sio.c ++++ b/drivers/usb/serial/ftdi_sio.c +@@ -486,6 +486,39 @@ static struct usb_device_id id_table_com + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_01FD_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_01FE_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_01FF_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_4701_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9300_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9301_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9302_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9303_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9304_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9305_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9306_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9307_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9308_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9309_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930A_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930B_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930C_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930D_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930E_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930F_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9310_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9311_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9312_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9313_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9314_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9315_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9316_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9317_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9318_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9319_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931A_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931B_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931C_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931D_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931E_PID) }, ++ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931F_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_PERLE_ULTRAPORT_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_PIEGROUP_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_TNC_X_PID) }, +--- a/drivers/usb/serial/ftdi_sio_ids.h ++++ b/drivers/usb/serial/ftdi_sio_ids.h +@@ -926,8 +926,8 @@ + #define BAYER_CONTOUR_CABLE_PID 0x6001 + + /* +- * The following are the values for the Matrix Orbital FTDI Range +- * Anything in this range will use an FT232RL. ++ * Matrix Orbital Intelligent USB displays. ++ * http://www.matrixorbital.com + */ + #define MTXORB_VID 0x1B3D + #define MTXORB_FTDI_RANGE_0100_PID 0x0100 +@@ -1186,8 +1186,39 @@ + #define MTXORB_FTDI_RANGE_01FD_PID 0x01FD + #define MTXORB_FTDI_RANGE_01FE_PID 0x01FE + #define MTXORB_FTDI_RANGE_01FF_PID 0x01FF +- +- ++#define MTXORB_FTDI_RANGE_4701_PID 0x4701 ++#define MTXORB_FTDI_RANGE_9300_PID 0x9300 ++#define MTXORB_FTDI_RANGE_9301_PID 0x9301 ++#define MTXORB_FTDI_RANGE_9302_PID 0x9302 ++#define MTXORB_FTDI_RANGE_9303_PID 0x9303 ++#define MTXORB_FTDI_RANGE_9304_PID 0x9304 ++#define MTXORB_FTDI_RANGE_9305_PID 0x9305 ++#define MTXORB_FTDI_RANGE_9306_PID 0x9306 ++#define MTXORB_FTDI_RANGE_9307_PID 0x9307 ++#define MTXORB_FTDI_RANGE_9308_PID 0x9308 ++#define MTXORB_FTDI_RANGE_9309_PID 0x9309 ++#define MTXORB_FTDI_RANGE_930A_PID 0x930A ++#define MTXORB_FTDI_RANGE_930B_PID 0x930B ++#define MTXORB_FTDI_RANGE_930C_PID 0x930C ++#define MTXORB_FTDI_RANGE_930D_PID 0x930D ++#define MTXORB_FTDI_RANGE_930E_PID 0x930E ++#define MTXORB_FTDI_RANGE_930F_PID 0x930F ++#define MTXORB_FTDI_RANGE_9310_PID 0x9310 ++#define MTXORB_FTDI_RANGE_9311_PID 0x9311 ++#define MTXORB_FTDI_RANGE_9312_PID 0x9312 ++#define MTXORB_FTDI_RANGE_9313_PID 0x9313 ++#define MTXORB_FTDI_RANGE_9314_PID 0x9314 ++#define MTXORB_FTDI_RANGE_9315_PID 0x9315 ++#define MTXORB_FTDI_RANGE_9316_PID 0x9316 ++#define MTXORB_FTDI_RANGE_9317_PID 0x9317 ++#define MTXORB_FTDI_RANGE_9318_PID 0x9318 ++#define MTXORB_FTDI_RANGE_9319_PID 0x9319 ++#define MTXORB_FTDI_RANGE_931A_PID 0x931A ++#define MTXORB_FTDI_RANGE_931B_PID 0x931B ++#define MTXORB_FTDI_RANGE_931C_PID 0x931C ++#define MTXORB_FTDI_RANGE_931D_PID 0x931D ++#define MTXORB_FTDI_RANGE_931E_PID 0x931E ++#define MTXORB_FTDI_RANGE_931F_PID 0x931F + + /* + * The Mobility Lab (TML) diff --git a/queue-3.10/usb-ssu100-fix-overrun-error-reporting.patch b/queue-3.10/usb-ssu100-fix-overrun-error-reporting.patch new file mode 100644 index 00000000000..945112db34a --- /dev/null +++ b/queue-3.10/usb-ssu100-fix-overrun-error-reporting.patch @@ -0,0 +1,49 @@ +From 75bcbf29c284dd0154c3e895a0bd1ef0e796160e Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Tue, 18 Nov 2014 11:25:21 +0100 +Subject: USB: ssu100: fix overrun-error reporting + +From: Johan Hovold + +commit 75bcbf29c284dd0154c3e895a0bd1ef0e796160e upstream. + +Fix reporting of overrun errors, which should only be reported once +using the inserted null character. + +Fixes: 6b8f1ca5581b ("USB: ssu100: set tty_flags in ssu100_process_packet") +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/ssu100.c | 11 +++-------- + 1 file changed, 3 insertions(+), 8 deletions(-) + +--- a/drivers/usb/serial/ssu100.c ++++ b/drivers/usb/serial/ssu100.c +@@ -495,10 +495,9 @@ static void ssu100_update_lsr(struct usb + if (*tty_flag == TTY_NORMAL) + *tty_flag = TTY_FRAME; + } +- if (lsr & UART_LSR_OE){ ++ if (lsr & UART_LSR_OE) { + port->icount.overrun++; +- if (*tty_flag == TTY_NORMAL) +- *tty_flag = TTY_OVERRUN; ++ tty_insert_flip_char(&port->port, 0, TTY_OVERRUN); + } + } + +@@ -516,12 +515,8 @@ static void ssu100_process_read_urb(stru + if ((len >= 4) && + (packet[0] == 0x1b) && (packet[1] == 0x1b) && + ((packet[2] == 0x00) || (packet[2] == 0x01))) { +- if (packet[2] == 0x00) { ++ if (packet[2] == 0x00) + ssu100_update_lsr(port, packet[3], &flag); +- if (flag == TTY_OVERRUN) +- tty_insert_flip_char(&port->port, 0, +- TTY_OVERRUN); +- } + if (packet[2] == 0x01) + ssu100_update_msr(port, packet[3]); + diff --git a/queue-3.10/usb-xhci-don-t-start-a-halted-endpoint-before-its-new-dequeue-is-set.patch b/queue-3.10/usb-xhci-don-t-start-a-halted-endpoint-before-its-new-dequeue-is-set.patch new file mode 100644 index 00000000000..2421ae137da --- /dev/null +++ b/queue-3.10/usb-xhci-don-t-start-a-halted-endpoint-before-its-new-dequeue-is-set.patch @@ -0,0 +1,44 @@ +From c3492dbfa1050debf23a5b5cd2bc7514c5b37896 Mon Sep 17 00:00:00 2001 +From: Mathias Nyman +Date: Tue, 18 Nov 2014 11:27:11 +0200 +Subject: USB: xhci: don't start a halted endpoint before its new dequeue is set + +From: Mathias Nyman + +commit c3492dbfa1050debf23a5b5cd2bc7514c5b37896 upstream. + +A halted endpoint ring must first be reset, then move the ring +dequeue pointer past the problematic TRB. If we start the ring too +early after reset, but before moving the dequeue pointer we +will end up executing the same problematic TRB again. + +As we always issue a set transfer dequeue command after a reset +endpoint command we can skip starting endpoint rings at reset endpoint +command completion. + +Without this fix we end up trying to handle the same faulty TD for +contol endpoints. causing timeout, and failing testusb ctrl_out write +tests. + +Fixes: e9df17e (USB: xhci: Correct assumptions about number of rings per endpoint.) +Tested-by: Felipe Balbi +Signed-off-by: Mathias Nyman +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/xhci-ring.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/drivers/usb/host/xhci-ring.c ++++ b/drivers/usb/host/xhci-ring.c +@@ -1178,9 +1178,8 @@ static void handle_reset_ep_completion(s + false); + xhci_ring_cmd_db(xhci); + } else { +- /* Clear our internal halted state and restart the ring(s) */ ++ /* Clear our internal halted state */ + xhci->devs[slot_id]->eps[ep_index].ep_state &= ~EP_HALTED; +- ring_doorbell_for_active_rings(xhci, slot_id, ep_index); + } + } +