linux/drivers/usb/serial
Bjørn Mork 59536da345 USB: qcserial: Fix support for HP lt4112 LTE/HSPA+ Gobi 4G Modem
The DEVICE_HWI type was added under the faulty assumption that Huawei
devices based on Qualcomm chipsets and firmware use the static USB
interface numbering known from Gobi devices.  But this model does
not apply to Huawei devices like the HP branded lt4112 (Huawei me906e).
Huawei firmwares will dynamically assign interface numbers. Functions
are renumbered when the firmware is reconfigured.

Fix by changing the DEVICE_HWI type to use a simplified version
of Huawei's subclass + protocol scheme: Blacklisting known network
interface combinations and assuming the rest are serial.

Reported-and-tested-by: Muri Nicanor <muri+libqmi@immerda.ch>
Tested-by: Martin Hauke <mardnh@gmx.de>
Cc: <stable@vger.kernel.org>
Fixes: e7181d005e ("USB: qcserial: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem")
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Johan Hovold <johan@kernel.org>
2015-11-16 18:29:07 +01:00
..
aircable.c USB: serial: correct spelling mistakes in comments 2014-01-03 12:39:31 -08:00
ark3116.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
belkin_sa.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
belkin_sa.h
bus.c USB: serial: clean up bus probe error handling 2015-02-26 17:13:05 +01:00
ch341.c USB-serial updates for v4.1-rc1 2015-04-03 18:59:34 +02:00
console.c USB: console: add dummy __module_get 2015-02-26 17:06:39 +01:00
cp210x.c USB: cp210x: add ID for Aruba Networks controllers 2015-07-06 13:50:30 +02:00
cyberjack.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
cypress_m8.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
cypress_m8.h USB: cypress_m8: only wake up MSR queue on changes 2014-01-03 12:42:24 -08:00
digi_acceleport.c usb: serial: Remove unused tty->hw_stopped 2014-09-23 21:19:35 -07:00
empeg.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ezusb_convert.pl
f81232.c USB: f81232: fix some minor style issues 2015-03-27 17:36:29 +01:00
ftdi_sio_ids.h USB: ftdi_sio: Added custom PID for CustomWare products 2015-08-18 10:07:40 -07:00
ftdi_sio.c USB: ftdi_sio: Added custom PID for CustomWare products 2015-08-18 10:07:40 -07:00
ftdi_sio.h
garmin_gps.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
generic.c USB: serial: fix infinite wait_until_sent timeout 2015-03-07 03:44:14 +01:00
io_16654.h
io_edgeport.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
io_edgeport.h
io_ionsp.h
io_tables.h
io_ti.c USB: io_ti: Remove extra blank lines separating functions 2015-10-09 12:23:50 +02:00
io_ti.h
io_usbvend.h USB: io_ti: fix firmware download on big-endian machines (part 2) 2014-05-27 15:12:57 -07:00
ipaq.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ipw.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ir-usb.c USB: serial: remove redundant OOM messages 2014-01-03 12:31:46 -08:00
iuu_phoenix.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
iuu_phoenix.h
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2015-06-23 14:08:54 -07:00
keyspan_pda.c USB: keyspan_pda: add new device id 2015-03-19 18:04:01 +01:00
keyspan_usa26msg.h USB: serial: correct spelling mistakes in comments 2014-01-03 12:39:31 -08:00
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: keyspan: fix null-deref at probe 2015-01-02 15:12:28 +01:00
keyspan.h
kl5kusb105.c USB: kl5kusb105: Remove klsi_105_tiocmset function 2014-07-09 15:44:06 -07:00
kl5kusb105.h
kobil_sct.c USB-serial updates for v3.19-rc1 2014-11-26 10:41:46 -08:00
kobil_sct.h
Makefile USB: serial: remove zte_ev driver 2014-09-15 18:43:08 +02:00
Makefile-keyspan_pda_fw
mct_u232.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
mct_u232.h
metro-usb.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
mos7720.c USB: mos7720: rename registers 2015-07-06 12:15:02 +02:00
mos7840.c USB: serial: mos7840: Use setup_timer 2015-06-01 16:39:41 +02:00
mxuport.c usb: serial: mxuport: Simplify return statement 2015-08-05 12:37:21 -07:00
navman.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
omninet.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
opticon.c USB: opticon: fix non-atomic allocation in write path 2014-11-03 09:07:30 +01:00
option.c USB: serial: option: add support for Novatel MiFi USB620L 2015-11-16 14:03:18 +01:00
oti6858.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
oti6858.h
pl2303.c USB: pl2303: fix baud-rate divisor calculations 2015-07-30 18:11:07 +02:00
pl2303.h USB: pl2303: Remove support for Samsung I330 2015-04-29 12:34:24 +02:00
qcaux.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
qcserial.c USB: qcserial: Fix support for HP lt4112 LTE/HSPA+ Gobi 4G Modem 2015-11-16 18:29:07 +01:00
quatech2.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
safe_serial.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
sierra.c USB: sierra: add 1199:68AB device ID 2015-07-28 09:27:50 +02:00
spcp8x5.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
ssu100.c USB: ssu100: fix overrun-error reporting 2014-11-19 16:22:22 +01:00
symbolserial.c USB: symbolserial: Correct transferred data size 2015-08-18 10:06:22 -07:00
ti_usb_3410_5052.c USB: ti_usb_3410_5052: Add Honeywell HGI80 ID 2015-11-16 14:07:01 +01:00
ti_usb_3410_5052.h USB: ti_usb_3410_5052: Add Honeywell HGI80 ID 2015-11-16 14:07:01 +01:00
usb_debug.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
usb_wwan.c USB: usb_wwan/option: generalize option_send_setup for other drivers 2015-10-09 12:42:40 +02:00
usb-serial-simple.c USB patches for 3.19-rc1 2014-12-14 14:57:16 -08:00
usb-serial.c USB: serial: Destroy serial_minors IDR on module exit 2015-07-09 10:41:23 +02:00
usb-wwan.h USB: usb_wwan/option: generalize option_send_setup for other drivers 2015-10-09 12:42:40 +02:00
visor.c USB: visor: Match I330 phone more precisely 2015-04-29 12:36:52 +02:00
visor.h USB: serial: correct spelling mistakes in comments 2014-01-03 12:39:31 -08:00
whiteheat.c USB: whiteheat: fix potential null-deref at probe 2015-09-23 12:15:19 -07:00
whiteheat.h
wishbone-serial.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
xsens_mt.c usb: serial: xsens_mt: always bind to interface number 1 2014-09-04 11:18:26 +02:00