]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Oct 2014 22:13:23 +0000 (15:13 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Oct 2014 22:13:23 +0000 (15:13 -0700)
added patches:
revert-usb-option-zte_ev-move-most-zte-cdma-devices-to-zte_ev.patch
usb-option-add-via-telecom-cds7-chipset-device-id.patch
usb-option-reduce-interrupt-urb-logging-verbosity.patch
usb-serial-fix-potential-heap-buffer-overflow.patch
usb-serial-fix-potential-stack-buffer-overflow.patch
usb-serial-pl2303-add-device-id-for-ztek-device.patch
usb-sisusb-add-device-id-for-magic-control-usb-video.patch
usb-zte_ev-remove-duplicate-gobi-pid.patch
usb-zte_ev-remove-duplicate-qualcom-pid.patch

queue-3.10/revert-usb-option-zte_ev-move-most-zte-cdma-devices-to-zte_ev.patch [new file with mode: 0644]
queue-3.10/series
queue-3.10/usb-option-add-via-telecom-cds7-chipset-device-id.patch [new file with mode: 0644]
queue-3.10/usb-option-reduce-interrupt-urb-logging-verbosity.patch [new file with mode: 0644]
queue-3.10/usb-serial-fix-potential-heap-buffer-overflow.patch [new file with mode: 0644]
queue-3.10/usb-serial-fix-potential-stack-buffer-overflow.patch [new file with mode: 0644]
queue-3.10/usb-serial-pl2303-add-device-id-for-ztek-device.patch [new file with mode: 0644]
queue-3.10/usb-sisusb-add-device-id-for-magic-control-usb-video.patch [new file with mode: 0644]
queue-3.10/usb-zte_ev-remove-duplicate-gobi-pid.patch [new file with mode: 0644]
queue-3.10/usb-zte_ev-remove-duplicate-qualcom-pid.patch [new file with mode: 0644]

diff --git a/queue-3.10/revert-usb-option-zte_ev-move-most-zte-cdma-devices-to-zte_ev.patch b/queue-3.10/revert-usb-option-zte_ev-move-most-zte-cdma-devices-to-zte_ev.patch
new file mode 100644 (file)
index 0000000..04c079d
--- /dev/null
@@ -0,0 +1,140 @@
+From 63a901c06e3c2c45bd601916fe04e870e9ccae1e Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Thu, 7 Aug 2014 16:00:13 +0200
+Subject: Revert "USB: option,zte_ev: move most ZTE CDMA devices to zte_ev"
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 63a901c06e3c2c45bd601916fe04e870e9ccae1e upstream.
+
+This reverts commit 73228a0538a7 ("USB: option,zte_ev: move most ZTE
+CDMA devices to zte_ev").
+
+Move the IDs of the devices that were previously driven by the option
+driver back to that driver.
+
+As several users have reported, the zte_ev driver is causing random
+disconnects as well as reconnect failures.
+
+A closer analysis of the zte_ev setup code reveals that it consists of
+standard CDC requests (SET/GET_LINE_CODING and SET_CONTROL_LINE_STATE)
+but unfortunately fails to get some of those right. In particular, as
+reported by Liu Lei, it fails to lower DTR/RTS on close. It also appears
+that the control requests lack the interface argument.
+
+Note that the zte_ev driver is based on code (once) distributed by ZTE
+that still appears to originally have been reverse-engineered and bolted
+onto the generic driver.
+
+Since line control is already handled properly by the option driver, and
+the SET/GET_LINE_CODING requests appears to be redundant (amounts to a
+SET 9600 8N1), this is a first step in ultimately removing the redundant
+zte_ev driver.
+
+Note that AC2726 had already been moved back to option, and that some
+IDs were in the device table of both drivers prior to the commit being
+reverted.
+
+Reported-by: Lei Liu <liu.lei78@zte.com.cn>
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |   24 +++++++++++++++++++++---
+ drivers/usb/serial/zte_ev.c |   18 ------------------
+ 2 files changed, 21 insertions(+), 21 deletions(-)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -275,8 +275,12 @@ static void option_instat_callback(struc
+ #define ZTE_PRODUCT_MF622                     0x0001
+ #define ZTE_PRODUCT_MF628                     0x0015
+ #define ZTE_PRODUCT_MF626                     0x0031
+-#define ZTE_PRODUCT_MC2718                    0xffe8
+ #define ZTE_PRODUCT_AC2726                    0xfff1
++#define ZTE_PRODUCT_CDMA_TECH                 0xfffe
++#define ZTE_PRODUCT_AC8710T                   0xffff
++#define ZTE_PRODUCT_MC2718                    0xffe8
++#define ZTE_PRODUCT_AD3812                    0xffeb
++#define ZTE_PRODUCT_MC2716                    0xffed
+ #define BENQ_VENDOR_ID                                0x04a5
+ #define BENQ_PRODUCT_H10                      0x4068
+@@ -531,10 +535,18 @@ static const struct option_blacklist_inf
+       .reserved = BIT(4),
+ };
++static const struct option_blacklist_info zte_ad3812_z_blacklist = {
++      .sendsetup = BIT(0) | BIT(1) | BIT(2),
++};
++
+ static const struct option_blacklist_info zte_mc2718_z_blacklist = {
+       .sendsetup = BIT(1) | BIT(2) | BIT(3) | BIT(4),
+ };
++static const struct option_blacklist_info zte_mc2716_z_blacklist = {
++      .sendsetup = BIT(1) | BIT(2) | BIT(3),
++};
++
+ static const struct option_blacklist_info huawei_cdc12_blacklist = {
+       .reserved = BIT(1) | BIT(2),
+ };
+@@ -1074,6 +1086,7 @@ static const struct usb_device_id option
+       { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1012, 0xff) },
+       { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC650) },
+       { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) },
++      { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */
+       { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
+       { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
+       { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */
+@@ -1548,13 +1561,18 @@ static const struct usb_device_id option
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff93, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff94, 0xff, 0xff, 0xff) },
+-      /* NOTE: most ZTE CDMA devices should be driven by zte_ev, not option */
++      { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710T, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2718, 0xff, 0xff, 0xff),
+        .driver_info = (kernel_ulong_t)&zte_mc2718_z_blacklist },
++      { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AD3812, 0xff, 0xff, 0xff),
++       .driver_info = (kernel_ulong_t)&zte_ad3812_z_blacklist },
++      { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2716, 0xff, 0xff, 0xff),
++       .driver_info = (kernel_ulong_t)&zte_mc2716_z_blacklist },
+       { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x01) },
+       { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x05) },
+       { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x86, 0x10) },
+-      { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) },
+       { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
+       { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
+--- a/drivers/usb/serial/zte_ev.c
++++ b/drivers/usb/serial/zte_ev.c
+@@ -273,27 +273,9 @@ static void zte_ev_usb_serial_close(stru
+ }
+ static const struct usb_device_id id_table[] = {
+-      /* AC8710, AC8710T */
+-      { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffff, 0xff, 0xff, 0xff) },
+-       /* AC8700 */
+-      { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xfffe, 0xff, 0xff, 0xff) },
+       /* MG880 */
+       { USB_DEVICE(0x19d2, 0xfffd) },
+-      { USB_DEVICE(0x19d2, 0xfffc) },
+-      { USB_DEVICE(0x19d2, 0xfffb) },
+-      /* AC8710_V3 */
+-      { USB_DEVICE(0x19d2, 0xfff6) },
+-      { USB_DEVICE(0x19d2, 0xfff7) },
+-      { USB_DEVICE(0x19d2, 0xfff8) },
+-      { USB_DEVICE(0x19d2, 0xfff9) },
+-      { USB_DEVICE(0x19d2, 0xffee) },
+-      /* AC2716, MC2716 */
+-      { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffed, 0xff, 0xff, 0xff) },
+-      /* AD3812 */
+-      { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffeb, 0xff, 0xff, 0xff) },
+-      { USB_DEVICE(0x19d2, 0xffec) },
+       { USB_DEVICE(0x05C6, 0x3197) },
+-      { USB_DEVICE(0x05C6, 0x6000) },
+       { USB_DEVICE(0x05C6, 0x9008) },
+       { },
+ };
index b422b657296fd1295330d3370f390f2ea89a4acf..0f7f74f2b34d3cd89a44ff29b6f339baf894f7ac 100644 (file)
@@ -36,3 +36,12 @@ xtensa-fix-address-checks-in-dma_-alloc-free-_coherent.patch
 xtensa-fix-access-to-thread_ra-thread_sp-thread_ds.patch
 xtensa-fix-tlbtemp_base_2-region-handling-in-fast_second_level_miss.patch
 xtensa-fix-a6-and-a7-handling-in-fast_syscall_xtensa.patch
+usb-serial-pl2303-add-device-id-for-ztek-device.patch
+usb-serial-fix-potential-stack-buffer-overflow.patch
+usb-sisusb-add-device-id-for-magic-control-usb-video.patch
+usb-serial-fix-potential-heap-buffer-overflow.patch
+usb-option-reduce-interrupt-urb-logging-verbosity.patch
+usb-option-add-via-telecom-cds7-chipset-device-id.patch
+revert-usb-option-zte_ev-move-most-zte-cdma-devices-to-zte_ev.patch
+usb-zte_ev-remove-duplicate-gobi-pid.patch
+usb-zte_ev-remove-duplicate-qualcom-pid.patch
diff --git a/queue-3.10/usb-option-add-via-telecom-cds7-chipset-device-id.patch b/queue-3.10/usb-option-add-via-telecom-cds7-chipset-device-id.patch
new file mode 100644 (file)
index 0000000..9932715
--- /dev/null
@@ -0,0 +1,43 @@
+From d77302739d900bbca5e901a3b7ac48c907ee6c93 Mon Sep 17 00:00:00 2001
+From: Brennan Ashton <bashton@brennanashton.com>
+Date: Wed, 6 Aug 2014 08:46:44 -0700
+Subject: USB: option: add VIA Telecom CDS7 chipset device id
+
+From: Brennan Ashton <bashton@brennanashton.com>
+
+commit d77302739d900bbca5e901a3b7ac48c907ee6c93 upstream.
+
+This VIA Telecom baseband processor is used is used by by u-blox in both the
+FW2770 and FW2760 products and may be used in others as well.
+
+This patch has been tested on both of these modem versions.
+
+Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -494,6 +494,10 @@ static void option_instat_callback(struc
+ #define INOVIA_VENDOR_ID                      0x20a6
+ #define INOVIA_SEW858                         0x1105
++/* VIA Telecom */
++#define VIATELECOM_VENDOR_ID                  0x15eb
++#define VIATELECOM_PRODUCT_CDS7                       0x0001
++
+ /* some devices interfaces need special handling due to a number of reasons */
+ enum option_blacklist_reason {
+               OPTION_BLACKLIST_NONE = 0,
+@@ -1724,6 +1728,7 @@ static const struct usb_device_id option
+       { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
+       { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
+       { USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) },
++      { USB_DEVICE(VIATELECOM_VENDOR_ID, VIATELECOM_PRODUCT_CDS7) },
+       { } /* Terminating entry */
+ };
+ MODULE_DEVICE_TABLE(usb, option_ids);
diff --git a/queue-3.10/usb-option-reduce-interrupt-urb-logging-verbosity.patch b/queue-3.10/usb-option-reduce-interrupt-urb-logging-verbosity.patch
new file mode 100644 (file)
index 0000000..c057656
--- /dev/null
@@ -0,0 +1,40 @@
+From f0e4cba2534cd88476dff920727c81350130f3c5 Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Tue, 29 Jul 2014 14:14:55 +0200
+Subject: USB: option: reduce interrupt-urb logging verbosity
+
+From: Johan Hovold <johan@kernel.org>
+
+commit f0e4cba2534cd88476dff920727c81350130f3c5 upstream.
+
+Do not log normal interrupt-urb shutdowns as errors.
+
+The option driver has always been logging any nonzero interrupt-urb
+status as an error, including when the urb is killed during normal
+operation.
+
+Commit 9096f1fbba91 ("USB: usb_wwan: fix potential NULL-deref at
+resume") moved the interrupt urb submission from port probe and release
+to open and close, thus potentially increasing the number of these
+false-positive error messages dramatically.
+
+Reported-by: Ed Butler <ressy66@ausics.net>
+Tested-by: Ed Butler <ressy66@ausics.net>
+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
+@@ -1917,6 +1917,8 @@ static void option_instat_callback(struc
+                       dev_dbg(dev, "%s: type %x req %x\n", __func__,
+                               req_pkt->bRequestType, req_pkt->bRequest);
+               }
++      } else if (status == -ENOENT || status == -ESHUTDOWN) {
++              dev_dbg(dev, "%s: urb stopped: %d\n", __func__, status);
+       } else
+               dev_err(dev, "%s: error %d\n", __func__, status);
diff --git a/queue-3.10/usb-serial-fix-potential-heap-buffer-overflow.patch b/queue-3.10/usb-serial-fix-potential-heap-buffer-overflow.patch
new file mode 100644 (file)
index 0000000..f8f2afd
--- /dev/null
@@ -0,0 +1,38 @@
+From 5654699fb38512bdbfc0f892ce54fce75bdc2bab Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Wed, 27 Aug 2014 11:55:19 +0200
+Subject: USB: serial: fix potential heap buffer overflow
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 5654699fb38512bdbfc0f892ce54fce75bdc2bab upstream.
+
+Make sure to verify the number of ports requested by subdriver to avoid
+writing beyond the end of fixed-size array in interface data.
+
+The current usb-serial implementation is limited to eight ports per
+interface but failed to verify that the number of ports requested by a
+subdriver (which could have been determined from device descriptors) did
+not exceed this limit.
+
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/usb-serial.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/usb/serial/usb-serial.c
++++ b/drivers/usb/serial/usb-serial.c
+@@ -876,6 +876,11 @@ static int usb_serial_probe(struct usb_i
+                       num_ports = type->num_ports;
+       }
++      if (num_ports > MAX_NUM_PORTS) {
++              dev_warn(ddev, "too many ports requested: %d\n", num_ports);
++              num_ports = MAX_NUM_PORTS;
++      }
++
+       serial->num_ports = num_ports;
+       serial->num_bulk_in = num_bulk_in;
+       serial->num_bulk_out = num_bulk_out;
diff --git a/queue-3.10/usb-serial-fix-potential-stack-buffer-overflow.patch b/queue-3.10/usb-serial-fix-potential-stack-buffer-overflow.patch
new file mode 100644 (file)
index 0000000..834e616
--- /dev/null
@@ -0,0 +1,86 @@
+From d979e9f9ecab04c1ecca741370e30a8a498893f5 Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Wed, 27 Aug 2014 11:55:18 +0200
+Subject: USB: serial: fix potential stack buffer overflow
+
+From: Johan Hovold <johan@kernel.org>
+
+commit d979e9f9ecab04c1ecca741370e30a8a498893f5 upstream.
+
+Make sure to verify the maximum number of endpoints per type to avoid
+writing beyond the end of a stack-allocated array.
+
+The current usb-serial implementation is limited to eight ports per
+interface but failed to verify that the number of endpoints of a certain
+type reported by a device did not exceed this limit.
+
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/usb-serial.c |   32 ++++++++++++++++++++++----------
+ 1 file changed, 22 insertions(+), 10 deletions(-)
+
+--- a/drivers/usb/serial/usb-serial.c
++++ b/drivers/usb/serial/usb-serial.c
+@@ -778,29 +778,39 @@ static int usb_serial_probe(struct usb_i
+               if (usb_endpoint_is_bulk_in(endpoint)) {
+                       /* we found a bulk in endpoint */
+                       dev_dbg(ddev, "found bulk in on endpoint %d\n", i);
+-                      bulk_in_endpoint[num_bulk_in] = endpoint;
+-                      ++num_bulk_in;
++                      if (num_bulk_in < MAX_NUM_PORTS) {
++                              bulk_in_endpoint[num_bulk_in] = endpoint;
++                              ++num_bulk_in;
++                      }
+               }
+               if (usb_endpoint_is_bulk_out(endpoint)) {
+                       /* we found a bulk out endpoint */
+                       dev_dbg(ddev, "found bulk out on endpoint %d\n", i);
+-                      bulk_out_endpoint[num_bulk_out] = endpoint;
+-                      ++num_bulk_out;
++                      if (num_bulk_out < MAX_NUM_PORTS) {
++                              bulk_out_endpoint[num_bulk_out] = endpoint;
++                              ++num_bulk_out;
++                      }
+               }
+               if (usb_endpoint_is_int_in(endpoint)) {
+                       /* we found a interrupt in endpoint */
+                       dev_dbg(ddev, "found interrupt in on endpoint %d\n", i);
+-                      interrupt_in_endpoint[num_interrupt_in] = endpoint;
+-                      ++num_interrupt_in;
++                      if (num_interrupt_in < MAX_NUM_PORTS) {
++                              interrupt_in_endpoint[num_interrupt_in] =
++                                              endpoint;
++                              ++num_interrupt_in;
++                      }
+               }
+               if (usb_endpoint_is_int_out(endpoint)) {
+                       /* we found an interrupt out endpoint */
+                       dev_dbg(ddev, "found interrupt out on endpoint %d\n", i);
+-                      interrupt_out_endpoint[num_interrupt_out] = endpoint;
+-                      ++num_interrupt_out;
++                      if (num_interrupt_out < MAX_NUM_PORTS) {
++                              interrupt_out_endpoint[num_interrupt_out] =
++                                              endpoint;
++                              ++num_interrupt_out;
++                      }
+               }
+       }
+@@ -823,8 +833,10 @@ static int usb_serial_probe(struct usb_i
+                               if (usb_endpoint_is_int_in(endpoint)) {
+                                       /* we found a interrupt in endpoint */
+                                       dev_dbg(ddev, "found interrupt in for Prolific device on separate interface\n");
+-                                      interrupt_in_endpoint[num_interrupt_in] = endpoint;
+-                                      ++num_interrupt_in;
++                                      if (num_interrupt_in < MAX_NUM_PORTS) {
++                                              interrupt_in_endpoint[num_interrupt_in] = endpoint;
++                                              ++num_interrupt_in;
++                                      }
+                               }
+                       }
+               }
diff --git a/queue-3.10/usb-serial-pl2303-add-device-id-for-ztek-device.patch b/queue-3.10/usb-serial-pl2303-add-device-id-for-ztek-device.patch
new file mode 100644 (file)
index 0000000..9eba448
--- /dev/null
@@ -0,0 +1,40 @@
+From 91fcb1ce420e0a5f8d92d556d7008a78bc6ce1eb Mon Sep 17 00:00:00 2001
+From: Greg KH <gregkh@linuxfoundation.org>
+Date: Fri, 15 Aug 2014 15:22:21 +0800
+Subject: USB: serial: pl2303: add device id for ztek device
+
+From: Greg KH <gregkh@linuxfoundation.org>
+
+commit 91fcb1ce420e0a5f8d92d556d7008a78bc6ce1eb upstream.
+
+This adds a new device id to the pl2303 driver for the ZTEK device.
+
+Reported-by: Mike Chu <Mike-Chu@prolific.com.tw>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Johan Hovold <johan@kernel.org>
+
+---
+ drivers/usb/serial/pl2303.c |    1 +
+ drivers/usb/serial/pl2303.h |    1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/pl2303.c
++++ b/drivers/usb/serial/pl2303.c
+@@ -47,6 +47,7 @@ static const struct usb_device_id id_tab
+       { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_GPRS) },
+       { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_HCR331) },
+       { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MOTOROLA) },
++      { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ZTEK) },
+       { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
+       { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) },
+       { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
+--- a/drivers/usb/serial/pl2303.h
++++ b/drivers/usb/serial/pl2303.h
+@@ -22,6 +22,7 @@
+ #define PL2303_PRODUCT_ID_GPRS                0x0609
+ #define PL2303_PRODUCT_ID_HCR331      0x331a
+ #define PL2303_PRODUCT_ID_MOTOROLA    0x0307
++#define PL2303_PRODUCT_ID_ZTEK                0xe1f1
+ #define ATEN_VENDOR_ID                0x0557
+ #define ATEN_VENDOR_ID2               0x0547
diff --git a/queue-3.10/usb-sisusb-add-device-id-for-magic-control-usb-video.patch b/queue-3.10/usb-sisusb-add-device-id-for-magic-control-usb-video.patch
new file mode 100644 (file)
index 0000000..7aa3096
--- /dev/null
@@ -0,0 +1,29 @@
+From 5b6b80aeb21091ed3030b9b6aae597d81326f1aa Mon Sep 17 00:00:00 2001
+From: Stephen Hemminger <stephen@networkplumber.org>
+Date: Mon, 25 Aug 2014 21:07:47 -0700
+Subject: USB: sisusb: add device id for Magic Control USB video
+
+From: Stephen Hemminger <stephen@networkplumber.org>
+
+commit 5b6b80aeb21091ed3030b9b6aae597d81326f1aa upstream.
+
+I have a j5 create (JUA210) USB 2 video device and adding it device id
+to SIS USB video gets it to work.
+
+Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/misc/sisusbvga/sisusb.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/misc/sisusbvga/sisusb.c
++++ b/drivers/usb/misc/sisusbvga/sisusb.c
+@@ -3248,6 +3248,7 @@ static const struct usb_device_id sisusb
+       { USB_DEVICE(0x0711, 0x0918) },
+       { USB_DEVICE(0x0711, 0x0920) },
+       { USB_DEVICE(0x0711, 0x0950) },
++      { USB_DEVICE(0x0711, 0x5200) },
+       { USB_DEVICE(0x182d, 0x021c) },
+       { USB_DEVICE(0x182d, 0x0269) },
+       { }
diff --git a/queue-3.10/usb-zte_ev-remove-duplicate-gobi-pid.patch b/queue-3.10/usb-zte_ev-remove-duplicate-gobi-pid.patch
new file mode 100644 (file)
index 0000000..3d03e5b
--- /dev/null
@@ -0,0 +1,31 @@
+From 95be5739588c56a9327e477aa0ba3c81c5cf8631 Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Thu, 7 Aug 2014 16:00:14 +0200
+Subject: USB: zte_ev: remove duplicate Gobi PID
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 95be5739588c56a9327e477aa0ba3c81c5cf8631 upstream.
+
+Remove dublicate Gobi PID 0x9008 which is already handled by the
+qcserial driver since commit f05932c0caf4 ("USB: qcserial: Add extra
+device IDs").
+
+Fixes: 799ee9243d89 ("USB: serial: add zte_ev.c driver")
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/zte_ev.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/usb/serial/zte_ev.c
++++ b/drivers/usb/serial/zte_ev.c
+@@ -276,7 +276,6 @@ static const struct usb_device_id id_tab
+       /* MG880 */
+       { USB_DEVICE(0x19d2, 0xfffd) },
+       { USB_DEVICE(0x05C6, 0x3197) },
+-      { USB_DEVICE(0x05C6, 0x9008) },
+       { },
+ };
+ MODULE_DEVICE_TABLE(usb, id_table);
diff --git a/queue-3.10/usb-zte_ev-remove-duplicate-qualcom-pid.patch b/queue-3.10/usb-zte_ev-remove-duplicate-qualcom-pid.patch
new file mode 100644 (file)
index 0000000..43f09e4
--- /dev/null
@@ -0,0 +1,31 @@
+From 754eb21c0bbbbc4b8830a9a864b286323b84225f Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Thu, 7 Aug 2014 16:00:15 +0200
+Subject: USB: zte_ev: remove duplicate Qualcom PID
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 754eb21c0bbbbc4b8830a9a864b286323b84225f upstream.
+
+Remove dublicate Qualcom PID 0x3197 which is already handled by the
+moto-modem driver since commit 6986a978eec7 ("USB: add new moto_modem
+driver for some Morotola phones").
+
+Fixes: 799ee9243d89 ("USB: serial: add zte_ev.c driver")
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/zte_ev.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/usb/serial/zte_ev.c
++++ b/drivers/usb/serial/zte_ev.c
+@@ -275,7 +275,6 @@ static void zte_ev_usb_serial_close(stru
+ static const struct usb_device_id id_table[] = {
+       /* MG880 */
+       { USB_DEVICE(0x19d2, 0xfffd) },
+-      { USB_DEVICE(0x05C6, 0x3197) },
+       { },
+ };
+ MODULE_DEVICE_TABLE(usb, id_table);