1 From e7181d005e84b15fe3121a8d22840adc3395d496 Mon Sep 17 00:00:00 2001
2 From: Martin Hauke <mardnh@gmx.de>
3 Date: Sun, 16 Nov 2014 21:17:30 +0100
4 Subject: USB: qcserial: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem
6 From: Martin Hauke <mardnh@gmx.de>
8 commit e7181d005e84b15fe3121a8d22840adc3395d496 upstream.
10 Added new device layout "DEVICE_HWI" and also added the USB VID/PID for the
11 HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e)
13 Signed-off-by: Martin Hauke <mardnh@gmx.de>
14 Signed-off-by: Johan Hovold <johan@kernel.org>
15 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
18 drivers/usb/serial/qcserial.c | 33 +++++++++++++++++++++++++++++++++
19 1 file changed, 33 insertions(+)
21 --- a/drivers/usb/serial/qcserial.c
22 +++ b/drivers/usb/serial/qcserial.c
23 @@ -27,12 +27,15 @@ enum qcserial_layouts {
24 QCSERIAL_G2K = 0, /* Gobi 2000 */
25 QCSERIAL_G1K = 1, /* Gobi 1000 */
26 QCSERIAL_SWI = 2, /* Sierra Wireless */
27 + QCSERIAL_HWI = 3, /* Huawei */
30 #define DEVICE_G1K(v, p) \
31 USB_DEVICE(v, p), .driver_info = QCSERIAL_G1K
32 #define DEVICE_SWI(v, p) \
33 USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI
34 +#define DEVICE_HWI(v, p) \
35 + USB_DEVICE(v, p), .driver_info = QCSERIAL_HWI
37 static const struct usb_device_id id_table[] = {
38 /* Gobi 1000 devices */
39 @@ -157,6 +160,9 @@ static const struct usb_device_id id_tab
40 {DEVICE_SWI(0x413c, 0x81a8)}, /* Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card */
41 {DEVICE_SWI(0x413c, 0x81a9)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card */
43 + /* Huawei devices */
44 + {DEVICE_HWI(0x03f0, 0x581d)}, /* HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e) */
46 { } /* Terminating entry */
48 MODULE_DEVICE_TABLE(usb, id_table);
49 @@ -283,6 +289,33 @@ static int qcprobe(struct usb_serial *se
52 /* don't claim any unsupported interface */
60 + * 0: AT-capable modem port
62 + * 2: AT-capable modem port
63 + * 3: CCID-compatible PCSC interface
70 + dev_dbg(dev, "Modem port found\n");
73 + dev_dbg(dev, "DM/DIAG interface found\n");
76 + dev_dbg(dev, "NMEA GPS interface found\n");
79 + /* don't claim any unsupported interface */