xref: /openbmc/linux/drivers/usb/serial/option.c (revision 36db6e8484ed455bbb320d89a119378897ae991c)
15fd54aceSGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
258cfe911SMatthias Urlichs /*
314f76cc7SMatthias Urlichs   USB Driver for GSM modems
458cfe911SMatthias Urlichs 
558cfe911SMatthias Urlichs   Copyright (C) 2005  Matthias Urlichs <smurf@smurf.noris.de>
658cfe911SMatthias Urlichs 
758cfe911SMatthias Urlichs   Portions copied from the Keyspan driver by Hugh Blemings <hugh@blemings.org>
858cfe911SMatthias Urlichs 
9b3fdab59SMatthias Urlichs   History: see the git log.
10ba460e48SMatthias Urlichs 
11ba460e48SMatthias Urlichs   Work sponsored by: Sigos GmbH, Germany <info@sigos.de>
12ba460e48SMatthias Urlichs 
1314f76cc7SMatthias Urlichs   This driver exists because the "normal" serial driver doesn't work too well
1414f76cc7SMatthias Urlichs   with GSM modems. Issues:
1514f76cc7SMatthias Urlichs   - data loss -- one single Receive URB is not nearly enough
167c1c2f73SMatthias Urlichs   - nonstandard flow (Option devices) control
1714f76cc7SMatthias Urlichs   - controlling the baud rate doesn't make sense
1814f76cc7SMatthias Urlichs 
1914f76cc7SMatthias Urlichs   This driver is named "option" because the most common device it's
2014f76cc7SMatthias Urlichs   used for is a PC-Card (with an internal OHCI-USB interface, behind
2114f76cc7SMatthias Urlichs   which the GSM interface sits), made by Option Inc.
2214f76cc7SMatthias Urlichs 
2314f76cc7SMatthias Urlichs   Some of the "one port" devices actually exhibit multiple USB instances
2414f76cc7SMatthias Urlichs   on the USB bus. This is not a bug, these ports are used for different
2514f76cc7SMatthias Urlichs   device features.
2658cfe911SMatthias Urlichs */
27ba460e48SMatthias Urlichs 
2858cfe911SMatthias Urlichs #define DRIVER_AUTHOR "Matthias Urlichs <smurf@smurf.noris.de>"
2914f76cc7SMatthias Urlichs #define DRIVER_DESC "USB Driver for GSM modems"
3058cfe911SMatthias Urlichs 
3158cfe911SMatthias Urlichs #include <linux/kernel.h>
3258cfe911SMatthias Urlichs #include <linux/jiffies.h>
3358cfe911SMatthias Urlichs #include <linux/errno.h>
3458cfe911SMatthias Urlichs #include <linux/tty.h>
3558cfe911SMatthias Urlichs #include <linux/tty_flip.h>
365a0e3ad6STejun Heo #include <linux/slab.h>
3758cfe911SMatthias Urlichs #include <linux/module.h>
3859c2afa0SAlan Stern #include <linux/bitops.h>
3958cfe911SMatthias Urlichs #include <linux/usb.h>
40a969888cSGreg Kroah-Hartman #include <linux/usb/serial.h>
418b4c6a3aSMatthew Garrett #include "usb-wwan.h"
4258cfe911SMatthias Urlichs 
4358cfe911SMatthias Urlichs /* Function prototypes */
44c5be1b52SPascal Terjan static int  option_probe(struct usb_serial *serial,
45c5be1b52SPascal Terjan 			const struct usb_device_id *id);
46c2dd4a8eSJohan Hovold static int option_attach(struct usb_serial *serial);
47b9c3aab3SJohan Hovold static void option_release(struct usb_serial *serial);
488b4c6a3aSMatthew Garrett static void option_instat_callback(struct urb *urb);
4958cfe911SMatthias Urlichs 
5058cfe911SMatthias Urlichs /* Vendor and product IDs */
5158cfe911SMatthias Urlichs #define OPTION_VENDOR_ID			0x0AF0
52fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_COLT			0x5000
53fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_RICOLA			0x6000
54fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_RICOLA_LIGHT		0x6100
55fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_RICOLA_QUAD		0x6200
56fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_RICOLA_QUAD_LIGHT	0x6300
57fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_RICOLA_NDIS		0x6050
58fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_RICOLA_NDIS_LIGHT	0x6150
59fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_RICOLA_NDIS_QUAD		0x6250
60fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_RICOLA_NDIS_QUAD_LIGHT	0x6350
6114f76cc7SMatthias Urlichs #define OPTION_PRODUCT_COBRA			0x6500
62fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_COBRA_BUS		0x6501
63fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_VIPER			0x6600
64fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_VIPER_BUS		0x6601
65fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_GT_MAX_READY		0x6701
66fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_FUJI_MODEM_LIGHT		0x6721
67fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_FUJI_MODEM_GT		0x6741
68fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_FUJI_MODEM_EX		0x6761
69fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_KOI_MODEM		0x6800
70fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_SCORPION_MODEM		0x6901
71fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_ETNA_MODEM		0x7001
72fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_ETNA_MODEM_LITE		0x7021
73fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_ETNA_MODEM_GT		0x7041
74fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_ETNA_MODEM_EX		0x7061
75fd978bfaSGreg Kroah-Hartman #define OPTION_PRODUCT_ETNA_KOI_MODEM		0x7100
76e7f2f0d7SAchilleas Kotsis #define OPTION_PRODUCT_GTM380_MODEM		0x7201
77fd978bfaSGreg Kroah-Hartman 
78fd978bfaSGreg Kroah-Hartman #define HUAWEI_VENDOR_ID			0x12D1
79f36446cfSBjørn Mork #define HUAWEI_PRODUCT_E173			0x140C
80eb2addd4SMichal Malý #define HUAWEI_PRODUCT_E1750			0x1406
810372a754SAndrew Bird #define HUAWEI_PRODUCT_K4505			0x1464
820372a754SAndrew Bird #define HUAWEI_PRODUCT_K3765			0x1465
837e180584SAndrew Bird #define HUAWEI_PRODUCT_K4605			0x14C6
848f173e22SGustavo Zacarias #define HUAWEI_PRODUCT_E173S6			0x1C07
85fd978bfaSGreg Kroah-Hartman 
86fc91be2aSAlex.Cheng@quantatw.com #define QUANTA_VENDOR_ID			0x0408
87fc91be2aSAlex.Cheng@quantatw.com #define QUANTA_PRODUCT_Q101			0xEA02
88fc91be2aSAlex.Cheng@quantatw.com #define QUANTA_PRODUCT_Q111			0xEA03
89fc91be2aSAlex.Cheng@quantatw.com #define QUANTA_PRODUCT_GLX			0xEA04
90fc91be2aSAlex.Cheng@quantatw.com #define QUANTA_PRODUCT_GKE			0xEA05
91fc91be2aSAlex.Cheng@quantatw.com #define QUANTA_PRODUCT_GLE			0xEA06
92fc91be2aSAlex.Cheng@quantatw.com 
93fd978bfaSGreg Kroah-Hartman #define NOVATELWIRELESS_VENDOR_ID		0x1410
9472ab6414SDirk DeSchepper 
95c6206faaSLeslie Watter /* YISO PRODUCTS */
96c6206faaSLeslie Watter 
97c6206faaSLeslie Watter #define YISO_VENDOR_ID				0x0EAB
98c6206faaSLeslie Watter #define YISO_PRODUCT_U893			0xC893
99c6206faaSLeslie Watter 
100c7aa8f44SDirk De Schepper /*
101c7aa8f44SDirk De Schepper  * NOVATEL WIRELESS PRODUCTS
102c7aa8f44SDirk De Schepper  *
103c7aa8f44SDirk De Schepper  * Note from Novatel Wireless:
104c7aa8f44SDirk De Schepper  * If your Novatel modem does not work on linux, don't
105c7aa8f44SDirk De Schepper  * change the option module, but check our website. If
106c7aa8f44SDirk De Schepper  * that does not help, contact ddeschepper@nvtl.com
107c7aa8f44SDirk De Schepper */
10872ab6414SDirk DeSchepper /* MERLIN EVDO PRODUCTS */
10972ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_V640		0x1100
11072ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_V620		0x1110
11172ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_V740		0x1120
11272ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_V720		0x1130
11372ab6414SDirk DeSchepper 
11472ab6414SDirk DeSchepper /* MERLIN HSDPA/HSPA PRODUCTS */
11572ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_U730		0x1400
11672ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_U740		0x1410
11772ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_U870		0x1420
11872ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_XU870		0x1430
11972ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_X950D		0x1450
12072ab6414SDirk DeSchepper 
12172ab6414SDirk DeSchepper /* EXPEDITE PRODUCTS */
12272ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_EV620		0x2100
12372ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_ES720		0x2110
12472ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_E725		0x2120
125a1d9bc12SMatthias Urlichs #define NOVATELWIRELESS_PRODUCT_ES620		0x2130
12672ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_EU730		0x2400
12772ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_EU740		0x2410
12872ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_EU870D		0x2420
12972ab6414SDirk DeSchepper /* OVATION PRODUCTS */
13072ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_MC727		0x4100
13172ab6414SDirk DeSchepper #define NOVATELWIRELESS_PRODUCT_MC950D		0x4400
132c7aa8f44SDirk De Schepper /*
133c7aa8f44SDirk De Schepper  * Note from Novatel Wireless:
134c7aa8f44SDirk De Schepper  * All PID in the 5xxx range are currently reserved for
135c7aa8f44SDirk De Schepper  * auto-install CDROMs, and should not be added to this
136c7aa8f44SDirk De Schepper  * module.
137c7aa8f44SDirk De Schepper  *
138c7aa8f44SDirk De Schepper  * #define NOVATELWIRELESS_PRODUCT_U727		0x5010
139c7aa8f44SDirk De Schepper  * #define NOVATELWIRELESS_PRODUCT_MC727_NEW	0x5100
140c7aa8f44SDirk De Schepper */
14171f9f6ccSDan Williams #define NOVATELWIRELESS_PRODUCT_OVMC760		0x6002
142c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_MC780		0x6010
143c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED	0x6000
144c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED	0x6001
145c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED	0x7000
146c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED	0x7001
147c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED3	0x7003
148c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED4	0x7004
149c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED5	0x7005
150c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED6	0x7006
151c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED7	0x7007
152c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_MC996D		0x7030
153c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_MF3470		0x7041
154c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_MC547		0x7042
155c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED	0x8000
156c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED	0x8001
157c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED	0x9000
158c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED	0x9001
159fcb21645SDan Williams #define NOVATELWIRELESS_PRODUCT_E362		0x9010
1608a61ba3aSAlexej Starschenko #define NOVATELWIRELESS_PRODUCT_E371		0x9011
161e07af133SAleksander Morgado #define NOVATELWIRELESS_PRODUCT_U620L		0x9022
162c7aa8f44SDirk De Schepper #define NOVATELWIRELESS_PRODUCT_G2		0xA010
163065b07e7SForest Bond #define NOVATELWIRELESS_PRODUCT_MC551		0xB001
16472ab6414SDirk DeSchepper 
165c1547f12SDavide Tronchin #define UBLOX_VENDOR_ID				0x1546
166c1547f12SDavide Tronchin 
16732147be4Stang kai /* AMOI PRODUCTS */
16832147be4Stang kai #define AMOI_VENDOR_ID				0x1614
16932147be4Stang kai #define AMOI_PRODUCT_H01			0x0800
17032147be4Stang kai #define AMOI_PRODUCT_H01A			0x7002
17132147be4Stang kai #define AMOI_PRODUCT_H02			0x0802
1727595931cSDennis Jansen #define AMOI_PRODUCT_SKYPEPHONE_S2		0x0407
17332147be4Stang kai 
17496443218SFaidon Liambotis #define DELL_VENDOR_ID				0x413C
175fd978bfaSGreg Kroah-Hartman 
176c200b9c9SDirk De Schepper /* Dell modems */
177c200b9c9SDirk De Schepper #define DELL_PRODUCT_5700_MINICARD		0x8114
178c200b9c9SDirk De Schepper #define DELL_PRODUCT_5500_MINICARD		0x8115
179c200b9c9SDirk De Schepper #define DELL_PRODUCT_5505_MINICARD		0x8116
180c200b9c9SDirk De Schepper #define DELL_PRODUCT_5700_EXPRESSCARD		0x8117
181c200b9c9SDirk De Schepper #define DELL_PRODUCT_5510_EXPRESSCARD		0x8118
182c200b9c9SDirk De Schepper 
183c200b9c9SDirk De Schepper #define DELL_PRODUCT_5700_MINICARD_SPRINT	0x8128
184c200b9c9SDirk De Schepper #define DELL_PRODUCT_5700_MINICARD_TELUS	0x8129
185c200b9c9SDirk De Schepper 
186c200b9c9SDirk De Schepper #define DELL_PRODUCT_5720_MINICARD_VZW		0x8133
187c200b9c9SDirk De Schepper #define DELL_PRODUCT_5720_MINICARD_SPRINT	0x8134
188c200b9c9SDirk De Schepper #define DELL_PRODUCT_5720_MINICARD_TELUS	0x8135
189c200b9c9SDirk De Schepper #define DELL_PRODUCT_5520_MINICARD_CINGULAR	0x8136
190c200b9c9SDirk De Schepper #define DELL_PRODUCT_5520_MINICARD_GENERIC_L	0x8137
191c200b9c9SDirk De Schepper #define DELL_PRODUCT_5520_MINICARD_GENERIC_I	0x8138
192c200b9c9SDirk De Schepper 
193c200b9c9SDirk De Schepper #define DELL_PRODUCT_5730_MINICARD_SPRINT	0x8180
194c200b9c9SDirk De Schepper #define DELL_PRODUCT_5730_MINICARD_TELUS	0x8181
195c200b9c9SDirk De Schepper #define DELL_PRODUCT_5730_MINICARD_VZW		0x8182
196c200b9c9SDirk De Schepper 
197fcb21645SDan Williams #define DELL_PRODUCT_5800_MINICARD_VZW		0x8195  /* Novatel E362 */
198fcb21645SDan Williams #define DELL_PRODUCT_5800_V2_MINICARD_VZW	0x8196  /* Novatel E362 */
19949c6e370SDan Williams #define DELL_PRODUCT_5804_MINICARD_ATT		0x819b  /* Novatel E371 */
200fcb21645SDan Williams 
2017bab01ecSAleksander Morgado #define DELL_PRODUCT_5821E			0x81d7
202957c31eaSAleksander Morgado #define DELL_PRODUCT_5821E_ESIM			0x81e0
2036ecb3f0bSSlark Xiao #define DELL_PRODUCT_5829E_ESIM			0x81e4
2046ecb3f0bSSlark Xiao #define DELL_PRODUCT_5829E			0x81e6
2057bab01ecSAleksander Morgado 
2067f52c70cSPuliang Lu #define DELL_PRODUCT_FM101R_ESIM		0x8213
2077f52c70cSPuliang Lu #define DELL_PRODUCT_FM101R			0x8215
20852480e1fSPuliang Lu 
209564d61d3SDan Williams #define KYOCERA_VENDOR_ID			0x0c88
210640c1bceSGreg Kroah-Hartman #define KYOCERA_PRODUCT_KPC650			0x17da
211564d61d3SDan Williams #define KYOCERA_PRODUCT_KPC680			0x180a
212564d61d3SDan Williams 
213fd978bfaSGreg Kroah-Hartman #define ANYDATA_VENDOR_ID			0x16d5
214f8033827SHiroshi Miura #define ANYDATA_PRODUCT_ADU_620UW		0x6202
21546269db9SAlexander Gattin #define ANYDATA_PRODUCT_ADU_E100A		0x6501
21646269db9SAlexander Gattin #define ANYDATA_PRODUCT_ADU_500A		0x6502
217ba460e48SMatthias Urlichs 
21885fb62a0SDaniel Kozák #define AXESSTEL_VENDOR_ID			0x1726
21985fb62a0SDaniel Kozák #define AXESSTEL_PRODUCT_MV110H			0x1000
22085fb62a0SDaniel Kozák 
2213f6e5846SLeon Leong #define BANDRICH_VENDOR_ID			0x1A8D
2223f6e5846SLeon Leong #define BANDRICH_PRODUCT_C100_1			0x1002
2233f6e5846SLeon Leong #define BANDRICH_PRODUCT_C100_2			0x1003
224bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1004			0x1004
225bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1005			0x1005
226bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1006			0x1006
227bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1007			0x1007
228bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1008			0x1008
229bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1009			0x1009
230bf3fc828SLeon Leong #define BANDRICH_PRODUCT_100A			0x100a
231bf3fc828SLeon Leong 
232bf3fc828SLeon Leong #define BANDRICH_PRODUCT_100B			0x100b
233bf3fc828SLeon Leong #define BANDRICH_PRODUCT_100C			0x100c
234bf3fc828SLeon Leong #define BANDRICH_PRODUCT_100D			0x100d
235bf3fc828SLeon Leong #define BANDRICH_PRODUCT_100E			0x100e
236bf3fc828SLeon Leong 
237bf3fc828SLeon Leong #define BANDRICH_PRODUCT_100F			0x100f
238bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1010			0x1010
239bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1011			0x1011
240bf3fc828SLeon Leong #define BANDRICH_PRODUCT_1012			0x1012
2413f6e5846SLeon Leong 
242d726fb75SKevin Lloyd #define QUALCOMM_VENDOR_ID			0x05C6
2436e9f44eaSDan Williams /* These Quectel products use Qualcomm's vendor ID */
2446e9f44eaSDan Williams #define QUECTEL_PRODUCT_UC20			0x9003
2456e9f44eaSDan Williams #define QUECTEL_PRODUCT_UC15			0x9090
2464205cb01SSZ Lin (林上智) /* These u-blox products use Qualcomm's vendor ID */
2474205cb01SSZ Lin (林上智) #define UBLOX_PRODUCT_R410M			0x90b2
2483920bb71SSZ Lin (林上智) /* These Yuga products use Qualcomm's vendor ID */
2493920bb71SSZ Lin (林上智) #define YUGA_PRODUCT_CLM920_NC5			0x9625
2506e9f44eaSDan Williams 
2516e9f44eaSDan Williams #define QUECTEL_VENDOR_ID			0x2c7c
2526e9f44eaSDan Williams /* These Quectel products use Quectel's vendor ID */
2536e9f44eaSDan Williams #define QUECTEL_PRODUCT_EC21			0x0121
2544fea315aSBenoît Monin #define QUECTEL_PRODUCT_RG650V			0x0122
255f1832e2bSJerry Meng #define QUECTEL_PRODUCT_EM061K_LTA		0x0123
256f1832e2bSJerry Meng #define QUECTEL_PRODUCT_EM061K_LMS		0x0124
2576e9f44eaSDan Williams #define QUECTEL_PRODUCT_EC25			0x0125
2584f7cab49SJerry Meng #define QUECTEL_PRODUCT_EM060K_128		0x0128
259b39ecc8cSJerry Meng #define QUECTEL_PRODUCT_EM060K_129		0x0129
260b39ecc8cSJerry Meng #define QUECTEL_PRODUCT_EM060K_12a		0x012a
261b39ecc8cSJerry Meng #define QUECTEL_PRODUCT_EM060K_12b		0x012b
262b39ecc8cSJerry Meng #define QUECTEL_PRODUCT_EM060K_12c		0x012c
263c184acccSTomaz Solc #define QUECTEL_PRODUCT_EG91			0x0191
264da6902e5SAceLan Kao #define QUECTEL_PRODUCT_EG95			0x0195
265c654b21eSSebastian Sjoholm #define QUECTEL_PRODUCT_BG96			0x0296
26671a0483dSKristian Evensen #define QUECTEL_PRODUCT_EP06			0x0306
26733b29dbbSYonglin Tan #define QUECTEL_PRODUCT_EM05G			0x030a
268f766f3abSYonglin Tan #define QUECTEL_PRODUCT_EM060K			0x030b
269bb78654bSDuke Xin(辛安文) #define QUECTEL_PRODUCT_EM05G_CS		0x030c
270873854c0SMartin Kohn #define QUECTEL_PRODUCT_EM05GV2			0x030e
2711541dd00SDuke Xin(辛安文) #define QUECTEL_PRODUCT_EM05CN_SG		0x0310
272f0052d7aSDuke Xin #define QUECTEL_PRODUCT_EM05G_SG		0x0311
27371dfd381SDuke Xin(辛安文) #define QUECTEL_PRODUCT_EM05CN			0x0312
2746c331f32SDuke Xin(辛安文) #define QUECTEL_PRODUCT_EM05G_GR		0x0313
275b72d1397SDuke Xin(辛安文) #define QUECTEL_PRODUCT_EM05G_RS		0x0314
276d1252f02SKristian Evensen #define QUECTEL_PRODUCT_EM12			0x0512
277accf227dSKristian Evensen #define QUECTEL_PRODUCT_RM500Q			0x0800
278d640c4cbSjerry meng #define QUECTEL_PRODUCT_RM520N			0x0801
279d9bbb158SAli Mirghasemi #define QUECTEL_PRODUCT_EC200U			0x0901
2807dbe89b7SAlper Ak #define QUECTEL_PRODUCT_EG912Y			0x6001
2812263eb73SYu-Tung Chang #define QUECTEL_PRODUCT_EC200S_CN		0x6002
282857ea900SMohsen Tahmasebi #define QUECTEL_PRODUCT_EC200A			0x6005
28390a5c642SBenjamin B. Frost #define QUECTEL_PRODUCT_EG916Q			0x6007
284f1832e2bSJerry Meng #define QUECTEL_PRODUCT_EM061K_LWW		0x6008
285f1832e2bSJerry Meng #define QUECTEL_PRODUCT_EM061K_LCN		0x6009
286a46b973bSZiyi Cao #define QUECTEL_PRODUCT_EC200T			0x6026
28715b694e9SMacpaul Lin #define QUECTEL_PRODUCT_RM500K			0x7001
288d726fb75SKevin Lloyd 
289eaff4cdcSNathaniel McCallum #define CMOTECH_VENDOR_ID			0x16d8
29034f972d6SBjørn Mork #define CMOTECH_PRODUCT_6001			0x6001
29134f972d6SBjørn Mork #define CMOTECH_PRODUCT_CMU_300			0x6002
29234f972d6SBjørn Mork #define CMOTECH_PRODUCT_6003			0x6003
29334f972d6SBjørn Mork #define CMOTECH_PRODUCT_6004			0x6004
29434f972d6SBjørn Mork #define CMOTECH_PRODUCT_6005			0x6005
29534f972d6SBjørn Mork #define CMOTECH_PRODUCT_CGU_628A		0x6006
29634f972d6SBjørn Mork #define CMOTECH_PRODUCT_CHE_628S		0x6007
29734f972d6SBjørn Mork #define CMOTECH_PRODUCT_CMU_301			0x6008
29834f972d6SBjørn Mork #define CMOTECH_PRODUCT_CHU_628			0x6280
29934f972d6SBjørn Mork #define CMOTECH_PRODUCT_CHU_628S		0x6281
30034f972d6SBjørn Mork #define CMOTECH_PRODUCT_CDU_680			0x6803
30134f972d6SBjørn Mork #define CMOTECH_PRODUCT_CDU_685A		0x6804
30234f972d6SBjørn Mork #define CMOTECH_PRODUCT_CHU_720S		0x7001
30334f972d6SBjørn Mork #define CMOTECH_PRODUCT_7002			0x7002
30434f972d6SBjørn Mork #define CMOTECH_PRODUCT_CHU_629K		0x7003
30534f972d6SBjørn Mork #define CMOTECH_PRODUCT_7004			0x7004
30634f972d6SBjørn Mork #define CMOTECH_PRODUCT_7005			0x7005
30734f972d6SBjørn Mork #define CMOTECH_PRODUCT_CGU_629			0x7006
30834f972d6SBjørn Mork #define CMOTECH_PRODUCT_CHU_629S		0x700a
30934f972d6SBjørn Mork #define CMOTECH_PRODUCT_CHU_720I		0x7211
31034f972d6SBjørn Mork #define CMOTECH_PRODUCT_7212			0x7212
31134f972d6SBjørn Mork #define CMOTECH_PRODUCT_7213			0x7213
31234f972d6SBjørn Mork #define CMOTECH_PRODUCT_7251			0x7251
31334f972d6SBjørn Mork #define CMOTECH_PRODUCT_7252			0x7252
31434f972d6SBjørn Mork #define CMOTECH_PRODUCT_7253			0x7253
31580d97098SJames Cameron 
316ee53b0caSGreg Kroah-Hartman #define TELIT_VENDOR_ID				0x1bc7
317ee53b0caSGreg Kroah-Hartman #define TELIT_PRODUCT_UC864E			0x1003
318ce60c488SManuel Lauss #define TELIT_PRODUCT_UC864G			0x1004
3197204cf58SDaniele Palmas #define TELIT_PRODUCT_CC864_DUAL		0x1005
3207204cf58SDaniele Palmas #define TELIT_PRODUCT_CC864_SINGLE		0x1006
3217204cf58SDaniele Palmas #define TELIT_PRODUCT_DE910_DUAL		0x1010
322d6de486bSDaniele Palmas #define TELIT_PRODUCT_UE910_V2			0x1012
3235b09eff0SDaniele Palmas #define TELIT_PRODUCT_LE922_USBCFG1		0x1040
3245b09eff0SDaniele Palmas #define TELIT_PRODUCT_LE922_USBCFG2		0x1041
325ff4e2494SDaniele Palmas #define TELIT_PRODUCT_LE922_USBCFG0		0x1042
326ff4e2494SDaniele Palmas #define TELIT_PRODUCT_LE922_USBCFG3		0x1043
3275deef555SDaniele Palmas #define TELIT_PRODUCT_LE922_USBCFG5		0x1045
32840dd4604SDaniele Palmas #define TELIT_PRODUCT_ME910			0x1100
32908933099SDaniele Palmas #define TELIT_PRODUCT_ME910_DUAL_MODEM		0x1101
33003eb466fSDaniele Palmas #define TELIT_PRODUCT_LE920			0x1200
3312d0eb862SDaniele Palmas #define TELIT_PRODUCT_LE910			0x1201
3323c0415faSDaniele Palmas #define TELIT_PRODUCT_LE910_USBCFG4		0x1206
33301d7956bSDaniele Palmas #define TELIT_PRODUCT_LE920A4_1207		0x1207
33401d7956bSDaniele Palmas #define TELIT_PRODUCT_LE920A4_1208		0x1208
33501d7956bSDaniele Palmas #define TELIT_PRODUCT_LE920A4_1211		0x1211
33601d7956bSDaniele Palmas #define TELIT_PRODUCT_LE920A4_1212		0x1212
33701d7956bSDaniele Palmas #define TELIT_PRODUCT_LE920A4_1213		0x1213
33801d7956bSDaniele Palmas #define TELIT_PRODUCT_LE920A4_1214		0x1214
339ee53b0caSGreg Kroah-Hartman 
3406188a83fSOliver Martin /* ZTE PRODUCTS */
3416188a83fSOliver Martin #define ZTE_VENDOR_ID				0x19d2
3429ea19b82SAlbert Pauw #define ZTE_PRODUCT_MF622			0x0001
3436188a83fSOliver Martin #define ZTE_PRODUCT_MF628			0x0015
344bfd8408dSMikhail Gusarov #define ZTE_PRODUCT_MF626			0x0031
34519ab6bc5SLiu.Zhao #define ZTE_PRODUCT_ZM8620_X			0x0396
34619ab6bc5SLiu.Zhao #define ZTE_PRODUCT_ME3620_MBIM			0x0426
34719ab6bc5SLiu.Zhao #define ZTE_PRODUCT_ME3620_X			0x1432
34819ab6bc5SLiu.Zhao #define ZTE_PRODUCT_ME3620_L			0x1433
34952d0dc75SDmitry Kunilov #define ZTE_PRODUCT_AC2726			0xfff1
350f8c0e057SJohan Hovold #define ZTE_PRODUCT_MG880			0xfffd
35163a901c0SJohan Hovold #define ZTE_PRODUCT_CDMA_TECH			0xfffe
35263a901c0SJohan Hovold #define ZTE_PRODUCT_AC8710T			0xffff
35363a901c0SJohan Hovold #define ZTE_PRODUCT_MC2718			0xffe8
35463a901c0SJohan Hovold #define ZTE_PRODUCT_AD3812			0xffeb
35563a901c0SJohan Hovold #define ZTE_PRODUCT_MC2716			0xffed
3566188a83fSOliver Martin 
35728fb6682SJesse Sung #define BENQ_VENDOR_ID				0x04a5
35828fb6682SJesse Sung #define BENQ_PRODUCT_H10			0x4068
35928fb6682SJesse Sung 
360c00deaa5SPascal Terjan #define DLINK_VENDOR_ID				0x1186
361c00deaa5SPascal Terjan #define DLINK_PRODUCT_DWM_652			0x3e04
362ff854ce0SZhang Le #define DLINK_PRODUCT_DWM_652_U5		0xce16
363bf162019SHuang Ying #define DLINK_PRODUCT_DWM_652_U5A		0xce1e
364c00deaa5SPascal Terjan 
365e3a31745SBrad Lu #define QISDA_VENDOR_ID				0x1da5
366e3a31745SBrad Lu #define QISDA_PRODUCT_H21_4512			0x4512
367e3a31745SBrad Lu #define QISDA_PRODUCT_H21_4523			0x4523
368e3a31745SBrad Lu #define QISDA_PRODUCT_H20_4515			0x4515
369646d90e2SÖmer Sezgin Ugurlu #define QISDA_PRODUCT_H20_4518			0x4518
370e3a31745SBrad Lu #define QISDA_PRODUCT_H20_4519			0x4519
371e3a31745SBrad Lu 
372fead2ab6SBryan Wu /* TLAYTECH PRODUCTS */
373fead2ab6SBryan Wu #define TLAYTECH_VENDOR_ID			0x20B9
374fead2ab6SBryan Wu #define TLAYTECH_PRODUCT_TEU800			0x1682
375c00deaa5SPascal Terjan 
376334f9b0fSMichele Valzelli /* TOSHIBA PRODUCTS */
377334f9b0fSMichele Valzelli #define TOSHIBA_VENDOR_ID			0x0930
378334f9b0fSMichele Valzelli #define TOSHIBA_PRODUCT_HSDPA_MINICARD		0x1302
37975f47214SPeter Magdina #define TOSHIBA_PRODUCT_G450			0x0d45
380334f9b0fSMichele Valzelli 
381c3325eb1SAnssi Hannula #define ALINK_VENDOR_ID				0x1e0e
3823158a8d4SAndrey Skvortsov #define SIMCOM_PRODUCT_SIM7100E			0x9001 /* Yes, ALINK_VENDOR_ID */
3835c3e4076SDan Williams #define ALINK_PRODUCT_PH300			0x9100
384c3325eb1SAnssi Hannula #define ALINK_PRODUCT_3GU			0x9200
385c3325eb1SAnssi Hannula 
38648c348ccSJavier Martin /* ALCATEL PRODUCTS */
38748c348ccSJavier Martin #define ALCATEL_VENDOR_ID			0x1bbb
38815badbccSDan Williams #define ALCATEL_PRODUCT_X060S_X200		0x0000
389c0bc3098SDan Williams #define ALCATEL_PRODUCT_X220_X500D		0x0017
3905ec00854SBjørn Mork #define ALCATEL_PRODUCT_L100V			0x011e
391dd6b48ecSBjørn Mork #define ALCATEL_PRODUCT_L800MA			0x0203
39248c348ccSJavier Martin 
39333c38752Sspark #define PIRELLI_VENDOR_ID			0x1266
39433c38752Sspark #define PIRELLI_PRODUCT_C100_1			0x1002
39533c38752Sspark #define PIRELLI_PRODUCT_C100_2			0x1003
39633c38752Sspark #define PIRELLI_PRODUCT_1004			0x1004
39733c38752Sspark #define PIRELLI_PRODUCT_1005			0x1005
39833c38752Sspark #define PIRELLI_PRODUCT_1006			0x1006
39933c38752Sspark #define PIRELLI_PRODUCT_1007			0x1007
40033c38752Sspark #define PIRELLI_PRODUCT_1008			0x1008
40133c38752Sspark #define PIRELLI_PRODUCT_1009			0x1009
40233c38752Sspark #define PIRELLI_PRODUCT_100A			0x100a
40333c38752Sspark #define PIRELLI_PRODUCT_100B			0x100b
40433c38752Sspark #define PIRELLI_PRODUCT_100C			0x100c
40533c38752Sspark #define PIRELLI_PRODUCT_100D			0x100d
40633c38752Sspark #define PIRELLI_PRODUCT_100E			0x100e
40733c38752Sspark #define PIRELLI_PRODUCT_100F			0x100f
40833c38752Sspark #define PIRELLI_PRODUCT_1011			0x1011
40933c38752Sspark #define PIRELLI_PRODUCT_1012			0x1012
41033c38752Sspark 
41112148da6SHuzaifa Sidhpurwala /* Airplus products */
41212148da6SHuzaifa Sidhpurwala #define AIRPLUS_VENDOR_ID			0x1011
41312148da6SHuzaifa Sidhpurwala #define AIRPLUS_PRODUCT_MCD650			0x3198
41448c348ccSJavier Martin 
415ac7d4ca9SDan Williams /* Longcheer/Longsung vendor ID; makes whitelabel devices that
416ac7d4ca9SDan Williams  * many other vendors like 4G Systems, Alcatel, ChinaBird,
417ac7d4ca9SDan Williams  * Mobidata, etc sell under their own brand names.
418ac7d4ca9SDan Williams  */
419ac7d4ca9SDan Williams #define LONGCHEER_VENDOR_ID			0x1c9e
420ac7d4ca9SDan Williams 
4210ec86483SGernot Hillier /* 4G Systems products */
422617c331dSFlorian Zumbiehl /* This one was sold as the VW and Skoda "Carstick LTE" */
423617c331dSFlorian Zumbiehl #define FOUR_G_SYSTEMS_PRODUCT_CARSTICK_LTE	0x7605
42479da01d7SGernot Hillier /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
42579da01d7SGernot Hillier  * It seems to contain a Qualcomm QSC6240/6290 chipset            */
4260ec86483SGernot Hillier #define FOUR_G_SYSTEMS_PRODUCT_W14		0x9603
427638148e2SBjørn Mork #define FOUR_G_SYSTEMS_PRODUCT_W100		0x9b01
4280ec86483SGernot Hillier 
42969341bd1SOKAMOTO Yoshiaki /* Fujisoft products */
43069341bd1SOKAMOTO Yoshiaki #define FUJISOFT_PRODUCT_FS040U			0x9b02
43169341bd1SOKAMOTO Yoshiaki 
4327d5c1b9cSRahul Bedarkar /* iBall 3.5G connect wireless modem */
4337d5c1b9cSRahul Bedarkar #define IBALL_3_5G_CONNECT			0x9605
4347d5c1b9cSRahul Bedarkar 
435cdacb598SDan Williams /* Zoom */
436cdacb598SDan Williams #define ZOOM_PRODUCT_4597			0x9607
437cdacb598SDan Williams 
4381cab4c68SOliver Neukum /* SpeedUp SU9800 usb 3g modem */
4391cab4c68SOliver Neukum #define SPEEDUP_PRODUCT_SU9800			0x9800
4401cab4c68SOliver Neukum 
441c983202bSDonny Kurnia /* Haier products */
442c983202bSDonny Kurnia #define HAIER_VENDOR_ID				0x201e
443012eee15SDan Williams #define HAIER_PRODUCT_CE81B			0x10f8
444c983202bSDonny Kurnia #define HAIER_PRODUCT_CE100			0x2009
445c983202bSDonny Kurnia 
446444f94e9SSchemmel Hans-Christoph /* Gemalto's Cinterion products (formerly Siemens) */
447aa52b3a9SNicolaus Colberg #define SIEMENS_VENDOR_ID			0x0681
448aa52b3a9SNicolaus Colberg #define CINTERION_VENDOR_ID			0x1e2d
449aa52b3a9SNicolaus Colberg #define CINTERION_PRODUCT_HC25_MDMNET		0x0040
450444f94e9SSchemmel Hans-Christoph #define CINTERION_PRODUCT_HC25_MDM		0x0047
451aa52b3a9SNicolaus Colberg #define CINTERION_PRODUCT_HC28_MDMNET		0x004A /* same for HC28J */
452444f94e9SSchemmel Hans-Christoph #define CINTERION_PRODUCT_HC28_MDM		0x004C
453aa52b3a9SNicolaus Colberg #define CINTERION_PRODUCT_EU3_E			0x0051
454aa52b3a9SNicolaus Colberg #define CINTERION_PRODUCT_EU3_P			0x0052
455aa52b3a9SNicolaus Colberg #define CINTERION_PRODUCT_PH8			0x0053
4568ff10bdbSSchemmel Hans-Christoph #define CINTERION_PRODUCT_AHXX			0x0055
4578ff10bdbSSchemmel Hans-Christoph #define CINTERION_PRODUCT_PLXX			0x0060
4586d6556c0SGiacinto Cifelli #define CINTERION_PRODUCT_EXS82			0x006c
459444f94e9SSchemmel Hans-Christoph #define CINTERION_PRODUCT_PH8_2RMNET		0x0082
460444f94e9SSchemmel Hans-Christoph #define CINTERION_PRODUCT_PH8_AUDIO		0x0083
461444f94e9SSchemmel Hans-Christoph #define CINTERION_PRODUCT_AHXX_2RMNET		0x0084
462444f94e9SSchemmel Hans-Christoph #define CINTERION_PRODUCT_AHXX_AUDIO		0x0085
463dfbac2f4SReinhard Speyerer #define CINTERION_PRODUCT_CLS8			0x00b0
464e478d602SChristoph Schemmel #define CINTERION_PRODUCT_MV31_MBIM		0x00b3
465e478d602SChristoph Schemmel #define CINTERION_PRODUCT_MV31_RMNET		0x00b7
466158f7585SSlark Xiao #define CINTERION_PRODUCT_MV31_2_MBIM		0x00b8
467158f7585SSlark Xiao #define CINTERION_PRODUCT_MV31_2_RMNET		0x00b9
468b4a64ed6SSlark Xiao #define CINTERION_PRODUCT_MV32_WA		0x00f1
469b4a64ed6SSlark Xiao #define CINTERION_PRODUCT_MV32_WB		0x00f2
4708ffe20d0SSlark Xiao #define CINTERION_PRODUCT_MV32_WA_RMNET		0x00f3
4718ffe20d0SSlark Xiao #define CINTERION_PRODUCT_MV32_WB_RMNET		0x00f4
4726f44bcb6SGreg Kroah-Hartman 
47386234d49SNils Radtke /* Olivetti products */
47486234d49SNils Radtke #define OLIVETTI_VENDOR_ID			0x0b3c
47586234d49SNils Radtke #define OLIVETTI_PRODUCT_OLICARD100		0xc000
476b0ebef36SBjørn Mork #define OLIVETTI_PRODUCT_OLICARD120		0xc001
477b0ebef36SBjørn Mork #define OLIVETTI_PRODUCT_OLICARD140		0xc002
478d19bf5ceSFilippo Turato #define OLIVETTI_PRODUCT_OLICARD145		0xc003
479b0ebef36SBjørn Mork #define OLIVETTI_PRODUCT_OLICARD155		0xc004
4804cf76df0SDan Williams #define OLIVETTI_PRODUCT_OLICARD200		0xc005
481b0ebef36SBjørn Mork #define OLIVETTI_PRODUCT_OLICARD160		0xc00a
482533b3994SBjørn Mork #define OLIVETTI_PRODUCT_OLICARD500		0xc00b
48386234d49SNils Radtke 
48476078dc4SMichael Tokarev /* Celot products */
48576078dc4SMichael Tokarev #define CELOT_VENDOR_ID				0x211f
48676078dc4SMichael Tokarev #define CELOT_PRODUCT_CT680M			0x6801
48776078dc4SMichael Tokarev 
48880f9df3eSMarius B. Kotsbak /* Samsung products */
48980f9df3eSMarius B. Kotsbak #define SAMSUNG_VENDOR_ID                       0x04e8
49080f9df3eSMarius B. Kotsbak #define SAMSUNG_PRODUCT_GT_B3730                0x6889
49180f9df3eSMarius B. Kotsbak 
4920ef0be15S说不得 /* YUGA products  www.yuga-info.com gavin.kx@qq.com */
493c6eb2d75SGavin.zhu #define YUGA_VENDOR_ID				0x257A
494c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEM600			0x1601
495c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEM610			0x1602
496c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEM500			0x1603
497c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEM510			0x1604
498c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEM800			0x1605
499c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEM900			0x1606
500c6eb2d75SGavin.zhu 
501c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEU818			0x1607
502c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEU816			0x1608
503c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEU828			0x1609
504c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEU826			0x160A
505c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEU518			0x160B
506c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEU516			0x160C
507c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEU528			0x160D
508c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CEU526			0x160F
5090ef0be15S说不得 #define YUGA_PRODUCT_CEU881			0x161F
5100ef0be15S说不得 #define YUGA_PRODUCT_CEU882			0x162F
511c6eb2d75SGavin.zhu 
512c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWM600			0x2601
513c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWM610			0x2602
514c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWM500			0x2603
515c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWM510			0x2604
516c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWM800			0x2605
517c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWM900			0x2606
518c6eb2d75SGavin.zhu 
519c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWU718			0x2607
520c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWU716			0x2608
521c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWU728			0x2609
522c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWU726			0x260A
523c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWU518			0x260B
524c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWU516			0x260C
525c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWU528			0x260D
5260ef0be15S说不得 #define YUGA_PRODUCT_CWU581			0x260E
527c6eb2d75SGavin.zhu #define YUGA_PRODUCT_CWU526			0x260F
5280ef0be15S说不得 #define YUGA_PRODUCT_CWU582			0x261F
5290ef0be15S说不得 #define YUGA_PRODUCT_CWU583			0x262F
530c6eb2d75SGavin.zhu 
5310ef0be15S说不得 #define YUGA_PRODUCT_CLM600			0x3601
5320ef0be15S说不得 #define YUGA_PRODUCT_CLM610			0x3602
5330ef0be15S说不得 #define YUGA_PRODUCT_CLM500			0x3603
5340ef0be15S说不得 #define YUGA_PRODUCT_CLM510			0x3604
5350ef0be15S说不得 #define YUGA_PRODUCT_CLM800			0x3605
5360ef0be15S说不得 #define YUGA_PRODUCT_CLM900			0x3606
537c6eb2d75SGavin.zhu 
5380ef0be15S说不得 #define YUGA_PRODUCT_CLU718			0x3607
5390ef0be15S说不得 #define YUGA_PRODUCT_CLU716			0x3608
5400ef0be15S说不得 #define YUGA_PRODUCT_CLU728			0x3609
5410ef0be15S说不得 #define YUGA_PRODUCT_CLU726			0x360A
5420ef0be15S说不得 #define YUGA_PRODUCT_CLU518			0x360B
5430ef0be15S说不得 #define YUGA_PRODUCT_CLU516			0x360C
5440ef0be15S说不得 #define YUGA_PRODUCT_CLU528			0x360D
5450ef0be15S说不得 #define YUGA_PRODUCT_CLU526			0x360F
546c6eb2d75SGavin.zhu 
5475b061623SVU Tuan Duc /* Viettel products */
5485b061623SVU Tuan Duc #define VIETTEL_VENDOR_ID			0x2262
5495b061623SVU Tuan Duc #define VIETTEL_PRODUCT_VT1000			0x0002
5505b061623SVU Tuan Duc 
5513c8c9316SJanne Snabb /* ZD Incorporated */
5523c8c9316SJanne Snabb #define ZD_VENDOR_ID				0x0685
5533c8c9316SJanne Snabb #define ZD_PRODUCT_7000				0x7000
5543c8c9316SJanne Snabb 
555e423d740SKentaro Matsuyama /* LG products */
556e423d740SKentaro Matsuyama #define LG_VENDOR_ID				0x1004
557e423d740SKentaro Matsuyama #define LG_PRODUCT_L02C				0x618f
558e423d740SKentaro Matsuyama 
5590d8520a1SMeng Zhang /* MediaTek products */
5600d8520a1SMeng Zhang #define MEDIATEK_VENDOR_ID			0x0e8d
561aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_DC_1COM		0x00a0
562aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_DC_4COM		0x00a5
56394a85b63SQuentin.Li #define MEDIATEK_PRODUCT_DC_4COM2		0x00a7
564aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_DC_5COM		0x00a4
565aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_7208_1COM		0x7101
566aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_7208_2COM		0x7102
56794a85b63SQuentin.Li #define MEDIATEK_PRODUCT_7103_2COM		0x7103
56894a85b63SQuentin.Li #define MEDIATEK_PRODUCT_7106_2COM		0x7106
569aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_FP_1COM		0x0003
570aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_FP_2COM		0x0023
571aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_FPDC_1COM		0x0043
572aacef9c5SGaosen Zhang #define MEDIATEK_PRODUCT_FPDC_2COM		0x0033
5730d8520a1SMeng Zhang 
5741e2c4e59SDmitry Shmygov /* Cellient products */
5751e2c4e59SDmitry Shmygov #define CELLIENT_VENDOR_ID			0x2692
5761e2c4e59SDmitry Shmygov #define CELLIENT_PRODUCT_MEN200			0x9005
5773e765cabSWilken Gottwalt #define CELLIENT_PRODUCT_MPL200			0x9025
5781e2c4e59SDmitry Shmygov 
579ad86e586SDzianis Kahanovich /* Hyundai Petatel Inc. products */
580ad86e586SDzianis Kahanovich #define PETATEL_VENDOR_ID			0x1ff4
581c38e83b6SDaniil Bolsun #define PETATEL_PRODUCT_NP10T_600A		0x600a
582c38e83b6SDaniil Bolsun #define PETATEL_PRODUCT_NP10T_600E		0x600e
583ad86e586SDzianis Kahanovich 
58499beb2e9SBjørn Mork /* TP-LINK Incorporated products */
58599beb2e9SBjørn Mork #define TPLINK_VENDOR_ID			0x2357
586837ddc47SHenryk Heisig #define TPLINK_PRODUCT_LTE			0x000D
58799beb2e9SBjørn Mork #define TPLINK_PRODUCT_MA180			0x0201
58899beb2e9SBjørn Mork 
589d4fa6815SBjørn Mork /* Changhong products */
590d4fa6815SBjørn Mork #define CHANGHONG_VENDOR_ID			0x2077
591d4fa6815SBjørn Mork #define CHANGHONG_PRODUCT_CH690			0x7001
592d4fa6815SBjørn Mork 
593f4c19b8eSGreg Kroah-Hartman /* Inovia */
594f4c19b8eSGreg Kroah-Hartman #define INOVIA_VENDOR_ID			0x20a6
595f4c19b8eSGreg Kroah-Hartman #define INOVIA_SEW858				0x1105
596f4c19b8eSGreg Kroah-Hartman 
597d7730273SBrennan Ashton /* VIA Telecom */
598d7730273SBrennan Ashton #define VIATELECOM_VENDOR_ID			0x15eb
599d7730273SBrennan Ashton #define VIATELECOM_PRODUCT_CDS7			0x0001
600d7730273SBrennan Ashton 
6016695593eSAleksandr Makarov /* WeTelecom products */
6026695593eSAleksandr Makarov #define WETELECOM_VENDOR_ID			0x22de
6036695593eSAleksandr Makarov #define WETELECOM_PRODUCT_WMD200		0x6801
60440d9c325SAleksandr Makarov #define WETELECOM_PRODUCT_6802			0x6802
60540d9c325SAleksandr Makarov #define WETELECOM_PRODUCT_WMD300		0x6803
6066695593eSAleksandr Makarov 
6078d5fc280SYan Xinyu /* OPPO products */
6088d5fc280SYan Xinyu #define OPPO_VENDOR_ID				0x22d9
6098d5fc280SYan Xinyu #define OPPO_PRODUCT_R11			0x276c
6108d5fc280SYan Xinyu 
611df3414b0SBenoît Monin /* Sierra Wireless products */
612df3414b0SBenoît Monin #define SIERRA_VENDOR_ID			0x1199
613df3414b0SBenoît Monin #define SIERRA_PRODUCT_EM9191			0x90d3
614cc175ce2SGernot Hillier 
615a095edfcSArınç ÜNAL /* UNISOC (Spreadtrum) products */
616a095edfcSArınç ÜNAL #define UNISOC_VENDOR_ID			0x1782
617a095edfcSArınç ÜNAL /* TOZED LT70-C based on UNISOC SL8563 uses UNISOC's vendor ID */
618a095edfcSArınç ÜNAL #define TOZED_PRODUCT_LT70C			0x4055
6192beaa03eSAsuna Yang /* Luat Air72*U series based on UNISOC UIS8910 uses UNISOC's vendor ID */
6202beaa03eSAsuna Yang #define LUAT_PRODUCT_AIR720U			0x4e00
621a095edfcSArınç ÜNAL 
622c3a65808SJohan Hovold /* Device flags */
623a7417100SGernot Hillier 
624a251963fSJohan Hovold /* Highest interface number which can be used with NCTRL() and RSVD() */
625a251963fSJohan Hovold #define FLAG_IFNUM_MAX	7
626a251963fSJohan Hovold 
627c3a65808SJohan Hovold /* Interface does not support modem-control requests */
628c3a65808SJohan Hovold #define NCTRL(ifnum)	((BIT(ifnum) & 0xff) << 8)
629638148e2SBjørn Mork 
630c3a65808SJohan Hovold /* Interface is reserved */
631c3a65808SJohan Hovold #define RSVD(ifnum)	((BIT(ifnum) & 0xff) << 0)
63215badbccSDan Williams 
63335aecc02SJohan Hovold /* Interface must have two endpoints */
63435aecc02SJohan Hovold #define NUMEP2		BIT(16)
63535aecc02SJohan Hovold 
6362438c3a1SDaniele Palmas /* Device needs ZLP */
6372438c3a1SDaniele Palmas #define ZLP		BIT(17)
6382438c3a1SDaniele Palmas 
63971a0483dSKristian Evensen 
6407d40d7e8SNémeth Márton static const struct usb_device_id option_ids[] = {
641fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
642fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
643fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },
644fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD) },
645fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD_LIGHT) },
646fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS) },
647fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS_LIGHT) },
648fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS_QUAD) },
649fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS_QUAD_LIGHT) },
65014f76cc7SMatthias Urlichs 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) },
651fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA_BUS) },
652fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER) },
653fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER_BUS) },
654fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX_READY) },
655fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_LIGHT) },
656fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_GT) },
657fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_EX) },
658fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_MODEM) },
659fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_MODEM) },
660fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM) },
661fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_LITE) },
662fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) },
663fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) },
664fd978bfaSGreg Kroah-Hartman 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) },
665e7f2f0d7SAchilleas Kotsis 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GTM380_MODEM) },
666fc91be2aSAlex.Cheng@quantatw.com 	{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_Q101) },
667fc91be2aSAlex.Cheng@quantatw.com 	{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_Q111) },
668fc91be2aSAlex.Cheng@quantatw.com 	{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLX) },
669fc91be2aSAlex.Cheng@quantatw.com 	{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GKE) },
670fc91be2aSAlex.Cheng@quantatw.com 	{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
671cd565279SBjørn Mork 	{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
672c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
6731f3f6877SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c05, USB_CLASS_COMM, 0x02, 0xff) },
674daec90e7SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c1f, USB_CLASS_COMM, 0x02, 0xff) },
6751f3f6877SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c23, USB_CLASS_COMM, 0x02, 0xff) },
676f36446cfSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff),
677c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
6788f173e22SGustavo Zacarias 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173S6, 0xff, 0xff, 0xff),
679c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
680eb2addd4SMichal Malý 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1750, 0xff, 0xff, 0xff),
681c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
6821f3f6877SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1441, USB_CLASS_COMM, 0x02, 0xff) },
6831f3f6877SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1442, USB_CLASS_COMM, 0x02, 0xff) },
6840d905fd5SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff),
685c3a65808SJohan Hovold 	  .driver_info = RSVD(1) | RSVD(2) },
6860d905fd5SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3765, 0xff, 0xff, 0xff),
687c3a65808SJohan Hovold 	  .driver_info = RSVD(1) | RSVD(2) },
688b8a24e62SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x14ac, 0xff, 0xff, 0xff),	/* Huawei E1820 */
689c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
6900d905fd5SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4605, 0xff, 0xff, 0xff),
691c3a65808SJohan Hovold 	  .driver_info = RSVD(1) | RSVD(2) },
692ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0xff, 0xff) },
693ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x01) },
694ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x02) },
695ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x03) },
696ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x04) },
697ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x05) },
698ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x06) },
699ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0A) },
700ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0B) },
701ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0D) },
702ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0E) },
703ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0F) },
704ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x10) },
705ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x12) },
706ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x13) },
707ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x14) },
708ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x15) },
709ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x17) },
710ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x18) },
711ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x19) },
712ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1A) },
713ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1B) },
714ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1C) },
715ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x31) },
716ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x32) },
717ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x33) },
718ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x34) },
719ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x35) },
720ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x36) },
721ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3A) },
722ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3B) },
723ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3D) },
724ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3E) },
725ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3F) },
726ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x48) },
727ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x49) },
728ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4A) },
729ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4B) },
730ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4C) },
731ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x61) },
732ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x62) },
733ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x63) },
734ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x64) },
735ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x65) },
736ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x66) },
737ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6A) },
738ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6B) },
739ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6D) },
740ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6E) },
741ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6F) },
7422bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x72) },
7432bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x73) },
7442bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x74) },
7452bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x75) },
746ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x78) },
747ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x79) },
748ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7A) },
749ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7B) },
750ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7C) },
751ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x01) },
752ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x02) },
753ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x03) },
754ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x04) },
755ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x05) },
756ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x06) },
757ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0A) },
758ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0B) },
759ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0D) },
760ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0E) },
761ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0F) },
762ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x10) },
763ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x12) },
764ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x13) },
765ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x14) },
766ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x15) },
767ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x17) },
768ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x18) },
769ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x19) },
770ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1A) },
771ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1B) },
772ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1C) },
773ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x31) },
774ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x32) },
775ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x33) },
776ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x34) },
777ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x35) },
778ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x36) },
779ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3A) },
780ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3B) },
781ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3D) },
782ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3E) },
783ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3F) },
784ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x48) },
785ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x49) },
786ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4A) },
787ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4B) },
788ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4C) },
789ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x61) },
790ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x62) },
791ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x63) },
792ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x64) },
793ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x65) },
794ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x66) },
795ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6A) },
796ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6B) },
797ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6D) },
798ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6E) },
799ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6F) },
8002bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x72) },
8012bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x73) },
8022bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x74) },
8032bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x75) },
804ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x78) },
805ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x79) },
806ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7A) },
807ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7B) },
808ee6f827dSfangxiaozhi 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7C) },
809d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x01) },
810d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x02) },
811d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x03) },
812d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x04) },
813d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x05) },
814d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x06) },
815d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0A) },
816d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0B) },
817d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0D) },
818d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0E) },
819d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0F) },
820d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x10) },
821d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x12) },
822d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x13) },
823d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x14) },
824d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x15) },
825d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x17) },
826d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x18) },
827d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x19) },
828d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1A) },
829d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1B) },
830d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1C) },
831d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x31) },
832d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x32) },
833d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x33) },
834d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x34) },
835d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x35) },
836d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x36) },
837d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3A) },
838d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3B) },
839d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3D) },
840d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3E) },
841d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3F) },
842d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x48) },
843d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x49) },
844d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4A) },
845d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4B) },
846d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4C) },
847d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x61) },
848d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x62) },
849d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x63) },
850d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x64) },
851d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x65) },
852d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x66) },
853d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6A) },
854d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6B) },
855d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6D) },
856d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6E) },
857d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6F) },
8582bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x72) },
8592bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x73) },
8602bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x74) },
8612bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x75) },
862d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x78) },
863d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x79) },
864d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7A) },
865d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7B) },
866d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7C) },
867d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x01) },
868d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x02) },
869d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x03) },
870d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x04) },
871d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x05) },
872d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x06) },
873d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0A) },
874d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0B) },
875d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0D) },
876d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0E) },
877d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0F) },
878d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x10) },
879d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x12) },
880d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x13) },
881d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x14) },
882d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x15) },
883d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x17) },
884d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x18) },
885d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x19) },
886d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1A) },
887d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1B) },
888d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1C) },
889d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x31) },
890d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x32) },
891d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x33) },
892d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x34) },
893d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x35) },
894d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x36) },
895d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3A) },
896d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3B) },
897d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3D) },
898d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3E) },
899d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3F) },
900d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x48) },
901d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x49) },
902d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4A) },
903d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4B) },
904d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4C) },
905d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x61) },
906d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x62) },
907d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x63) },
908d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x64) },
909d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x65) },
910d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x66) },
911d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6A) },
912d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6B) },
913d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6D) },
914d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6E) },
915d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6F) },
9162bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x72) },
9172bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x73) },
9182bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x74) },
9192bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x75) },
920d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x78) },
921d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x79) },
922d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7A) },
923d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7B) },
924d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7C) },
925d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x01) },
926d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x02) },
927d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x03) },
928d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x04) },
929d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x05) },
930d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x06) },
931d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0A) },
932d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0B) },
933d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0D) },
934d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0E) },
935d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0F) },
936d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x10) },
937d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x12) },
938d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x13) },
939d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x14) },
940d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x15) },
941d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x17) },
942d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x18) },
943d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x19) },
944d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1A) },
945d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1B) },
946d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1C) },
947d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x31) },
948d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x32) },
949d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x33) },
950d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x34) },
951d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x35) },
952d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x36) },
953d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3A) },
954d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3B) },
955d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3D) },
956d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3E) },
957d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3F) },
958d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x48) },
959d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x49) },
960d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4A) },
961d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4B) },
962d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4C) },
963d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x61) },
964d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x62) },
965d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x63) },
966d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x64) },
967d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x65) },
968d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x66) },
969d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6A) },
970d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6B) },
971d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6D) },
972d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6E) },
973d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6F) },
9742bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x72) },
9752bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x73) },
9762bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x74) },
9772bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x75) },
978d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x78) },
979d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x79) },
980d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7A) },
981d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7B) },
982d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7C) },
983d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x01) },
984d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x02) },
985d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x03) },
986d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x04) },
987d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x05) },
988d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x06) },
989d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0A) },
990d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0B) },
991d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0D) },
992d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0E) },
993d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0F) },
994d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x10) },
995d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x12) },
996d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x13) },
997d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x14) },
998d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x15) },
999d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x17) },
1000d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x18) },
1001d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x19) },
1002d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1A) },
1003d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1B) },
1004d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1C) },
1005d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x31) },
1006d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x32) },
1007d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x33) },
1008d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x34) },
1009d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x35) },
1010d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x36) },
1011d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3A) },
1012d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3B) },
1013d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3D) },
1014d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3E) },
1015d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3F) },
1016d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x48) },
1017d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x49) },
1018d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4A) },
1019d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4B) },
1020d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4C) },
1021d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x61) },
1022d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x62) },
1023d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x63) },
1024d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x64) },
1025d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x65) },
1026d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x66) },
1027d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6A) },
1028d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6B) },
1029d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6D) },
1030d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6E) },
1031d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6F) },
10322bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x72) },
10332bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x73) },
10342bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x74) },
10352bf308d7SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x75) },
1036d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x78) },
1037d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x79) },
1038d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7A) },
1039d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7B) },
1040d544db29SFangxiaozhi (Franko) 	{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7C) },
1041ee6f827dSfangxiaozhi 
10426caf0be4STony Lindgren 	/* Motorola devices */
10436caf0be4STony Lindgren 	{ USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x2a70, 0xff, 0xff, 0xff) },	/* mdm6600 */
10446caf0be4STony Lindgren 	{ USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x2e0a, 0xff, 0xff, 0xff) },	/* mdm9600 */
10456caf0be4STony Lindgren 	{ USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x4281, 0x0a, 0x00, 0xfc) },	/* mdm ram dl */
10466caf0be4STony Lindgren 	{ USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x900e, 0xff, 0xff, 0xff) },	/* mdm qc dl */
1047ee6f827dSfangxiaozhi 
1048c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) },
1049c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) },
1050c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V740) },
1051c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V720) },
1052c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U730) },
1053c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U740) },
1054c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U870) },
1055c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_XU870) },
1056c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_X950D) },
1057c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EV620) },
1058c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES720) },
1059c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E725) },
1060c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES620) },
1061c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU730) },
1062c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU740) },
1063c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) },
1064c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) },
1065c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) },
1066c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_OVMC760) },
1067c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC780) },
1068c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED) },
1069c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED) },
1070c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED) },
1071c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED) },
1072c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED) },
10739ac2feb2SSantiago Garcia Mantinan 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED) },
1074c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED3) },
1075c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED4) },
1076c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED5) },
1077c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED6) },
1078c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED7) },
1079c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC996D) },
1080c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MF3470) },
1081c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC547) },
1082c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED) },
1083c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED) },
1084c7aa8f44SDirk De Schepper 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G2) },
1085065b07e7SForest Bond 	/* Novatel Ovation MC551 a.k.a. Verizon USB551L */
1086065b07e7SForest Bond 	{ USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC551, 0xff, 0xff, 0xff) },
1087fcb21645SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E362, 0xff, 0xff, 0xff) },
10888a61ba3aSAlexej Starschenko 	{ USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E371, 0xff, 0xff, 0xff) },
1089e07af133SAleksander Morgado 	{ USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U620L, 0xff, 0x00, 0x00) },
109072ab6414SDirk DeSchepper 
109132147be4Stang kai 	{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) },
109232147be4Stang kai 	{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) },
109332147be4Stang kai 	{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H02) },
10947595931cSDennis Jansen 	{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_SKYPEPHONE_S2) },
109532147be4Stang kai 
1096c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD) },		/* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */
1097c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5500_MINICARD) },		/* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
1098c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5505_MINICARD) },		/* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
1099c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_EXPRESSCARD) },		/* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */
1100c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5510_EXPRESSCARD) },		/* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */
1101c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD_SPRINT) },	/* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */
1102c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD_TELUS) },	/* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite ET620 CDMA/EV-DO */
1103c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_VZW) }, 	/* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
1104c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_SPRINT) }, 	/* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
1105c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_TELUS) }, 	/* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
1106c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_CINGULAR) },	/* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */
1107c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_L) },	/* Dell Wireless HSDPA 5520 */
1108c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_I) },	/* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */
1109c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_SPRINT) },	/* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
1110c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_TELUS) },	/* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
1111c200b9c9SDirk De Schepper 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_VZW) }, 	/* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
1112fcb21645SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5800_MINICARD_VZW, 0xff, 0xff, 0xff) },
1113fcb21645SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5800_V2_MINICARD_VZW, 0xff, 0xff, 0xff) },
111449c6e370SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5804_MINICARD_ATT, 0xff, 0xff, 0xff) },
11157bab01ecSAleksander Morgado 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E),
11167bab01ecSAleksander Morgado 	  .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
1117957c31eaSAleksander Morgado 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E_ESIM),
1118957c31eaSAleksander Morgado 	  .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
11196ecb3f0bSSlark Xiao 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E),
11206ecb3f0bSSlark Xiao 	  .driver_info = RSVD(0) | RSVD(6) },
11216ecb3f0bSSlark Xiao 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E_ESIM),
11226ecb3f0bSSlark Xiao 	  .driver_info = RSVD(0) | RSVD(6) },
112352480e1fSPuliang Lu 	{ USB_DEVICE_INTERFACE_CLASS(DELL_VENDOR_ID, DELL_PRODUCT_FM101R, 0xff) },
112452480e1fSPuliang Lu 	{ USB_DEVICE_INTERFACE_CLASS(DELL_VENDOR_ID, DELL_PRODUCT_FM101R_ESIM, 0xff) },
1125bb78a825SJon K Hellan 	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },	/* ADU-E100, ADU-310 */
112646269db9SAlexander Gattin 	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
1127f8033827SHiroshi Miura 	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
112885fb62a0SDaniel Kozák 	{ USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
1129c6206faaSLeslie Watter 	{ USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },
1130dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1, 0xff) },
1131dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2, 0xff) },
1132dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1004, 0xff) },
1133dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1005, 0xff) },
1134dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1006, 0xff) },
1135dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1007, 0xff) },
1136dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1008, 0xff) },
1137dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1009, 0xff) },
1138dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100A, 0xff) },
1139dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100B, 0xff) },
1140dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100C, 0xff) },
1141dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100D, 0xff) },
1142dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100E, 0xff) },
1143dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100F, 0xff) },
1144dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1010, 0xff) },
1145dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1011, 0xff) },
1146dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1012, 0xff) },
1147640c1bceSGreg Kroah-Hartman 	{ USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC650) },
1148564d61d3SDan Williams 	{ USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) },
114963a901c0SJohan Hovold 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */
1150d061c1caSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, 0x6001, 0xff, 0xff, 0xff), /* 4G LTE usb-modem U901 */
1151c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
1152d726fb75SKevin Lloyd 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
115363b5df96SEnrico Mioso 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
1154f8df5c2cSMans Rullgard 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
1155f8df5c2cSMans Rullgard 	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
11566e9f44eaSDan Williams 	/* Quectel products using Qualcomm vendor ID */
11576e9f44eaSDan Williams 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
11586e9f44eaSDan Williams 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
1159c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
11603920bb71SSZ Lin (林上智) 	/* Yuga products use Qualcomm vendor ID */
11613920bb71SSZ Lin (林上智) 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, YUGA_PRODUCT_CLM920_NC5),
1162c3a65808SJohan Hovold 	  .driver_info = RSVD(1) | RSVD(4) },
11634205cb01SSZ Lin (林上智) 	/* u-blox products using Qualcomm vendor ID */
11644205cb01SSZ Lin (林上智) 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M),
11654205cb01SSZ Lin (林上智) 	  .driver_info = RSVD(1) | RSVD(3) },
1166d9e37a5cSDavide Tronchin 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x908b),	/* u-blox LARA-R6 00B */
1167d9e37a5cSDavide Tronchin 	  .driver_info = RSVD(4) },
11682ec106b9SDavide Tronchin 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x90fa),
116994b619a0SMarco De Marco 	  .driver_info = RSVD(3) },
1170c1547f12SDavide Tronchin 	/* u-blox products */
1171ffa5f7a3SDavide Tronchin 	{ USB_DEVICE(UBLOX_VENDOR_ID, 0x1311) },	/* u-blox LARA-R6 01B */
1172ffa5f7a3SDavide Tronchin 	{ USB_DEVICE(UBLOX_VENDOR_ID, 0x1312),		/* u-blox LARA-R6 01B (RMNET) */
1173ffa5f7a3SDavide Tronchin 	  .driver_info = RSVD(4) },
1174ffa5f7a3SDavide Tronchin 	{ USB_DEVICE_INTERFACE_CLASS(UBLOX_VENDOR_ID, 0x1313, 0xff) },	/* u-blox LARA-R6 01B (ECM) */
1175c1547f12SDavide Tronchin 	{ USB_DEVICE(UBLOX_VENDOR_ID, 0x1341) },	/* u-blox LARA-L6 */
1176c1547f12SDavide Tronchin 	{ USB_DEVICE(UBLOX_VENDOR_ID, 0x1342),		/* u-blox LARA-L6 (RMNET) */
1177c1547f12SDavide Tronchin 	  .driver_info = RSVD(4) },
1178c1547f12SDavide Tronchin 	{ USB_DEVICE(UBLOX_VENDOR_ID, 0x1343),		/* u-blox LARA-L6 (ECM) */
1179c1547f12SDavide Tronchin 	  .driver_info = RSVD(4) },
11806e9f44eaSDan Williams 	/* Quectel products using Quectel vendor ID */
11812bb70f0aSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff),
11822bb70f0aSBjørn Mork 	  .driver_info = NUMEP2 },
11832bb70f0aSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0, 0) },
11842bb70f0aSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0xff, 0xff),
11852bb70f0aSBjørn Mork 	  .driver_info = NUMEP2 },
11862bb70f0aSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0, 0) },
1187c184acccSTomaz Solc 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG91, 0xff, 0xff, 0xff),
1188c184acccSTomaz Solc 	  .driver_info = NUMEP2 },
1189c184acccSTomaz Solc 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG91, 0xff, 0, 0) },
11902bb70f0aSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0xff, 0xff),
11912bb70f0aSBjørn Mork 	  .driver_info = NUMEP2 },
11922bb70f0aSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) },
1193f8f67effSCarl Yin(殷张成) 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, 0x0203, 0xff), /* BG95-M3 */
1194f8f67effSCarl Yin(殷张成) 	  .driver_info = ZLP },
1195c98fff73SBjørn Mork 	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
1196c98fff73SBjørn Mork 	  .driver_info = RSVD(4) },
119736cae568SKristian Evensen 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
119835aecc02SJohan Hovold 	  .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
119936cae568SKristian Evensen 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
120071dfd381SDuke Xin(辛安文) 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05CN, 0xff),
120171dfd381SDuke Xin(辛安文) 	  .driver_info = RSVD(6) | ZLP },
12021541dd00SDuke Xin(辛安文) 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05CN_SG, 0xff),
12031541dd00SDuke Xin(辛安文) 	  .driver_info = RSVD(6) | ZLP },
120433b29dbbSYonglin Tan 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G, 0xff),
120533b29dbbSYonglin Tan 	  .driver_info = RSVD(6) | ZLP },
1206873854c0SMartin Kohn 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05GV2, 0xff),
1207873854c0SMartin Kohn 	  .driver_info = RSVD(4) | ZLP },
1208bb78654bSDuke Xin(辛安文) 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_CS, 0xff),
1209bb78654bSDuke Xin(辛安文) 	  .driver_info = RSVD(6) | ZLP },
12106c331f32SDuke Xin(辛安文) 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_GR, 0xff),
12116c331f32SDuke Xin(辛安文) 	  .driver_info = RSVD(6) | ZLP },
1212b72d1397SDuke Xin(辛安文) 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_RS, 0xff),
1213b72d1397SDuke Xin(辛安文) 	  .driver_info = RSVD(6) | ZLP },
1214f0052d7aSDuke Xin 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_SG, 0xff),
1215f0052d7aSDuke Xin 	  .driver_info = RSVD(6) | ZLP },
1216f766f3abSYonglin Tan 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0x00, 0x40) },
1217f766f3abSYonglin Tan 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x30) },
1218f766f3abSYonglin Tan 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x40) },
12194f7cab49SJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0xff, 0x30) },
12204f7cab49SJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0x00, 0x40) },
12214f7cab49SJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0xff, 0x40) },
1222b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0xff, 0x30) },
1223b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0x00, 0x40) },
1224b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0xff, 0x40) },
1225b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0xff, 0x30) },
1226b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0x00, 0x40) },
1227b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0xff, 0x40) },
1228b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0xff, 0x30) },
1229b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0x00, 0x40) },
1230b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0xff, 0x40) },
1231b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0xff, 0x30) },
1232b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0x00, 0x40) },
1233b39ecc8cSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0xff, 0x40) },
1234f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x30) },
1235f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0x00, 0x40) },
1236f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x40) },
1237f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0xff, 0x30) },
1238f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0x00, 0x40) },
1239f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0xff, 0x40) },
1240f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0xff, 0x30) },
1241f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0x00, 0x40) },
1242f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0xff, 0x40) },
1243f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0xff, 0x30) },
1244f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0x00, 0x40) },
1245f1832e2bSJerry Meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0xff, 0x40) },
1246d1252f02SKristian Evensen 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0xff, 0xff),
1247d1252f02SKristian Evensen 	  .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
1248d1252f02SKristian Evensen 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0, 0) },
1249d6c1ddd9SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0620, 0xff, 0xff, 0x30) },	/* EM160R-GL */
1250d6c1ddd9SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0620, 0xff, 0, 0) },
125133b7af2fSCarl Yin(殷张成) 	{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, 0x0700, 0xff), /* BG95 */
125233b7af2fSCarl Yin(殷张成) 	  .driver_info = RSVD(3) | ZLP },
1253accf227dSKristian Evensen 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x30) },
125427149e82SReinhard Speyerer 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0x40) },
1255accf227dSKristian Evensen 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0) },
1256f3eaabbfSReinhard Speyerer 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x10),
1257f3eaabbfSReinhard Speyerer 	  .driver_info = ZLP },
1258d640c4cbSjerry meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0xff, 0x30) },
1259d640c4cbSjerry meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0, 0x40) },
1260d640c4cbSjerry meng 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0, 0) },
12617708a385SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0900, 0xff, 0, 0), /* RM500U-CN */
12627708a385SBjørn Mork 	  .driver_info = ZLP },
1263857ea900SMohsen Tahmasebi 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200A, 0xff, 0, 0) },
1264d9bbb158SAli Mirghasemi 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200U, 0xff, 0, 0) },
12652263eb73SYu-Tung Chang 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200S_CN, 0xff, 0, 0) },
1266a46b973bSZiyi Cao 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) },
12677dbe89b7SAlper Ak 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG912Y, 0xff, 0, 0) },
126890a5c642SBenjamin B. Frost 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG916Q, 0xff, 0x00, 0x00) },
126915b694e9SMacpaul Lin 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500K, 0xff, 0x00, 0x00) },
12704fea315aSBenoît Monin 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RG650V, 0xff, 0xff, 0x30) },
12714fea315aSBenoît Monin 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RG650V, 0xff, 0, 0) },
1272accf227dSKristian Evensen 
127334f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
127434f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
127534f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003),
1276c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
127734f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6004) },
127834f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6005) },
127934f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CGU_628A) },
128034f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHE_628S),
1281c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
128234f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_301),
1283c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
128434f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_628),
1285c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
128634f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_628S) },
128734f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU_680) },
128834f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU_685A) },
128934f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_720S),
1290c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
129134f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7002),
1292c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
129334f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_629K),
1294c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
129534f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7004),
1296c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
129734f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7005) },
129834f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CGU_629),
1299c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
130034f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_629S),
1301c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
130234f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_720I),
1303c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
130434f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7212),
1305c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
130634f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7213),
1307c3a65808SJohan Hovold 	  .driver_info = RSVD(0) },
130834f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7251),
1309c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
131034f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7252),
1311c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
131234f972d6SBjørn Mork 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7253),
1313c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
1314ee53b0caSGreg Kroah-Hartman 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
1315ce60c488SManuel Lauss 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) },
13167204cf58SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) },
13177204cf58SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
13187204cf58SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
1319d6de486bSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) },
1320399ad947SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1031, 0xff),	/* Telit LE910C1-EUX */
1321399ad947SDaniele Palmas 	 .driver_info = NCTRL(0) | RSVD(3) },
1322399ad947SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1033, 0xff),	/* Telit LE910C1-EUX (ECM) */
1323399ad947SDaniele Palmas 	 .driver_info = NCTRL(0) },
13246a7be48eSFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1035, 0xff) }, /* Telit LE910C4-WWX (ECM) */
1325ff4e2494SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG0),
1326c3a65808SJohan Hovold 	  .driver_info = RSVD(0) | RSVD(1) | NCTRL(2) | RSVD(3) },
13275b09eff0SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG1),
1328c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
13295b09eff0SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG2),
1330c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
1331ff4e2494SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG3),
1332c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
13335deef555SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG5, 0xff),
1334c3a65808SJohan Hovold 	  .driver_info = RSVD(0) | RSVD(1) | NCTRL(2) | RSVD(3) },
13355eb3f4b8SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1050, 0xff),	/* Telit FN980 (rmnet) */
13365eb3f4b8SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
13375eb3f4b8SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1051, 0xff),	/* Telit FN980 (MBIM) */
13385eb3f4b8SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) },
13395eb3f4b8SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1052, 0xff),	/* Telit FN980 (RNDIS) */
13405eb3f4b8SDaniele Palmas 	  .driver_info = NCTRL(2) | RSVD(3) },
13415eb3f4b8SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1053, 0xff),	/* Telit FN980 (ECM) */
13425eb3f4b8SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) },
1343924a9213SLeonid Bloch 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1054, 0xff),	/* Telit FT980-KS */
1344924a9213SLeonid Bloch 	  .driver_info = NCTRL(2) | RSVD(3) },
1345db0362eeSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1055, 0xff),	/* Telit FN980 (PCIe) */
1346db0362eeSDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) },
13475648c073SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1056, 0xff),	/* Telit FD980 */
13485648c073SDaniele Palmas 	  .driver_info = NCTRL(2) | RSVD(3) },
1349f32c5a04SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1057, 0xff),	/* Telit FN980 */
1350f32c5a04SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1351f32c5a04SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1058, 0xff),	/* Telit FN980 (PCIe) */
1352f32c5a04SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) },
13537bb05713SCarlo Lobrano 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1060, 0xff),	/* Telit LN920 (rmnet) */
13547bb05713SCarlo Lobrano 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
13557bb05713SCarlo Lobrano 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1061, 0xff),	/* Telit LN920 (MBIM) */
13567bb05713SCarlo Lobrano 	  .driver_info = NCTRL(0) | RSVD(1) },
13577bb05713SCarlo Lobrano 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1062, 0xff),	/* Telit LN920 (RNDIS) */
13587bb05713SCarlo Lobrano 	  .driver_info = NCTRL(2) | RSVD(3) },
13597bb05713SCarlo Lobrano 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1063, 0xff),	/* Telit LN920 (ECM) */
13607bb05713SCarlo Lobrano 	  .driver_info = NCTRL(0) | RSVD(1) },
1361ced6965fSFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1070, 0xff),	/* Telit FN990A (rmnet) */
13622b503c85SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1363ced6965fSFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1071, 0xff),	/* Telit FN990A (MBIM) */
13642b503c85SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) },
1365ced6965fSFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1072, 0xff),	/* Telit FN990A (RNDIS) */
13662b503c85SDaniele Palmas 	  .driver_info = NCTRL(2) | RSVD(3) },
1367ced6965fSFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1073, 0xff),	/* Telit FN990A (ECM) */
13682b503c85SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) },
1369ced6965fSFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1075, 0xff),	/* Telit FN990A (PCIe) */
1370f32c5a04SDaniele Palmas 	  .driver_info = RSVD(0) },
137161e54009SFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1080, 0xff),	/* Telit FE990A (rmnet) */
1372773e8e7dSEnrico Sau 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
137361e54009SFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1081, 0xff),	/* Telit FE990A (MBIM) */
1374773e8e7dSEnrico Sau 	  .driver_info = NCTRL(0) | RSVD(1) },
137561e54009SFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1082, 0xff),	/* Telit FE990A (RNDIS) */
1376773e8e7dSEnrico Sau 	  .driver_info = NCTRL(2) | RSVD(3) },
137761e54009SFabio Porcedda 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1083, 0xff),	/* Telit FE990A (ECM) */
1378773e8e7dSEnrico Sau 	  .driver_info = NCTRL(0) | RSVD(1) },
1379d841a93bSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a0, 0xff),	/* Telit FN20C04 (rmnet) */
1380d841a93bSDaniele Palmas 	  .driver_info = RSVD(0) | NCTRL(3) },
138186c68aa7SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a2, 0xff),	/* Telit FN920C04 (MBIM) */
138286c68aa7SDaniele Palmas 	  .driver_info = NCTRL(4) },
1383d841a93bSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a4, 0xff),	/* Telit FN20C04 (rmnet) */
1384d841a93bSDaniele Palmas 	  .driver_info = RSVD(0) | NCTRL(3) },
138586c68aa7SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a7, 0xff),	/* Telit FN920C04 (MBIM) */
138686c68aa7SDaniele Palmas 	  .driver_info = NCTRL(4) },
1387d841a93bSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a9, 0xff),	/* Telit FN20C04 (rmnet) */
1388d841a93bSDaniele Palmas 	  .driver_info = RSVD(0) | NCTRL(2) | RSVD(3) | RSVD(4) },
138986c68aa7SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10aa, 0xff),	/* Telit FN920C04 (MBIM) */
139086c68aa7SDaniele Palmas 	  .driver_info = NCTRL(3) | RSVD(4) | RSVD(5) },
1391e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b0, 0xff, 0xff, 0x30),	/* Telit FE990B (rmnet) */
1392e1bfbf0fSFabio Porcedda 	  .driver_info = NCTRL(5) },
1393e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b0, 0xff, 0xff, 0x40) },
1394e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b0, 0xff, 0xff, 0x60) },
1395e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b1, 0xff, 0xff, 0x30),	/* Telit FE990B (MBIM) */
1396e1bfbf0fSFabio Porcedda 	  .driver_info = NCTRL(6) },
1397e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b1, 0xff, 0xff, 0x40) },
1398e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b1, 0xff, 0xff, 0x60) },
1399e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b2, 0xff, 0xff, 0x30),	/* Telit FE990B (RNDIS) */
1400e1bfbf0fSFabio Porcedda 	  .driver_info = NCTRL(6) },
1401e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b2, 0xff, 0xff, 0x40) },
1402e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b2, 0xff, 0xff, 0x60) },
1403e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b3, 0xff, 0xff, 0x30),	/* Telit FE990B (ECM) */
1404e1bfbf0fSFabio Porcedda 	  .driver_info = NCTRL(6) },
1405e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b3, 0xff, 0xff, 0x40) },
1406e1bfbf0fSFabio Porcedda 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b3, 0xff, 0xff, 0x60) },
1407cd8fb139SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10c0, 0xff),	/* Telit FE910C04 (rmnet) */
1408cd8fb139SDaniele Palmas 	  .driver_info = RSVD(0) | NCTRL(3) },
1409cd8fb139SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10c4, 0xff),	/* Telit FE910C04 (rmnet) */
1410cd8fb139SDaniele Palmas 	  .driver_info = RSVD(0) | NCTRL(3) },
1411cd8fb139SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10c8, 0xff),	/* Telit FE910C04 (rmnet) */
1412cd8fb139SDaniele Palmas 	  .driver_info = RSVD(0) | NCTRL(2) | RSVD(3) | RSVD(4) },
1413*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d0, 0xff, 0xff, 0x30),	/* Telit FN990B (rmnet) */
14145a3544d8SFabio Porcedda 	  .driver_info = NCTRL(5) },
1415*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d0, 0xff, 0xff, 0x40) },
1416*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d0, 0xff, 0xff, 0x60) },
1417*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d1, 0xff, 0xff, 0x30),	/* Telit FN990B (MBIM) */
14185a3544d8SFabio Porcedda 	  .driver_info = NCTRL(6) },
1419*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d1, 0xff, 0xff, 0x40) },
1420*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d1, 0xff, 0xff, 0x60) },
1421*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d2, 0xff, 0xff, 0x30),	/* Telit FN990B (RNDIS) */
14225a3544d8SFabio Porcedda 	  .driver_info = NCTRL(6) },
1423*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d2, 0xff, 0xff, 0x40) },
1424*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d2, 0xff, 0xff, 0x60) },
1425*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d3, 0xff, 0xff, 0x30),	/* Telit FN990B (ECM) */
14265a3544d8SFabio Porcedda 	  .driver_info = NCTRL(6) },
1427*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d3, 0xff, 0xff, 0x40) },
1428*ab0f6e77SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10d3, 0xff, 0xff, 0x60) },
142940dd4604SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910),
1430c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) },
143108933099SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM),
1432c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(3) },
14336431866bSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1102, 0xff),	/* Telit ME910 (ECM) */
14346431866bSDaniele Palmas 	  .driver_info = NCTRL(0) },
14350d3010faSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x110a, 0xff),	/* Telit ME910G1 */
14360d3010faSDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(3) },
14378e852a79SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x110b, 0xff),	/* Telit ME910G1 (ECM) */
14388e852a79SDaniele Palmas 	  .driver_info = NCTRL(0) },
14392d0eb862SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910),
1440c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1441489979b4SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1203, 0xff),	/* Telit LE910Cx (RNDIS) */
1442489979b4SDaniele Palmas 	  .driver_info = NCTRL(2) | RSVD(3) },
1443f5a8a07eSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1204, 0xff),	/* Telit LE910Cx (MBIM) */
1444f5a8a07eSDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) },
14453c0415faSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910_USBCFG4),
1446c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
144703eb466fSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920),
1448c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(5) },
144901d7956bSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1207) },
145001d7956bSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1208),
1451c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) },
145201d7956bSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1211),
1453c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
145401d7956bSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1212),
1455c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) },
145601d7956bSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1213, 0xff) },
145701d7956bSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1214),
1458c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
1459489979b4SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1230, 0xff),	/* Telit LE910Cx (rmnet) */
1460489979b4SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1461489979b4SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1231, 0xff),	/* Telit LE910Cx (RNDIS) */
1462489979b4SDaniele Palmas 	  .driver_info = NCTRL(2) | RSVD(3) },
1463342fc0c3SCarlo Lobrano 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x1250, 0xff, 0x00, 0x00) },	/* Telit LE910Cx (rmnet) */
1464f3dfd407SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, 0x1260),
1465f3dfd407SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1466f3dfd407SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, 0x1261),
1467f3dfd407SDaniele Palmas 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
146828a86092SJörgen Storvist 	{ USB_DEVICE(TELIT_VENDOR_ID, 0x1900),				/* Telit LN940 (QMI) */
146928a86092SJörgen Storvist 	  .driver_info = NCTRL(0) | RSVD(1) },
147028a86092SJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1901, 0xff),	/* Telit LN940 (MBIM) */
147128a86092SJörgen Storvist 	  .driver_info = NCTRL(0) },
14728d320260SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x3000, 0xff),	/* Telit FN912 */
14738d320260SDaniele Palmas 	  .driver_info = RSVD(0) | NCTRL(3) },
14748d320260SDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x3001, 0xff),	/* Telit FN912 */
14758d320260SDaniele Palmas 	  .driver_info = RSVD(0) | NCTRL(2) | RSVD(3) | RSVD(4) },
1476e467714fSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x7010, 0xff),	/* Telit LE910-S1 (RNDIS) */
1477e467714fSDaniele Palmas 	  .driver_info = NCTRL(2) },
1478e467714fSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x7011, 0xff),	/* Telit LE910-S1 (ECM) */
1479e467714fSDaniele Palmas 	  .driver_info = NCTRL(2) },
1480cfc4442cSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x701a, 0xff),	/* Telit LE910R1 (RNDIS) */
1481cfc4442cSDaniele Palmas 	  .driver_info = NCTRL(2) },
1482cfc4442cSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x701b, 0xff),	/* Telit LE910R1 (ECM) */
1483cfc4442cSDaniele Palmas 	  .driver_info = NCTRL(2) },
14845aaeb60bSDaniele Palmas 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x9000, 0xff),	/* Telit generic core-dump device */
14855aaeb60bSDaniele Palmas 	  .driver_info = NCTRL(0) },
14862438c3a1SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, 0x9010),				/* Telit SBL FN980 flashing device */
14872438c3a1SDaniele Palmas 	  .driver_info = NCTRL(0) | ZLP },
1488e353f3e8SDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, 0x9200),				/* Telit LE910S1 flashing device */
1489e353f3e8SDaniele Palmas 	  .driver_info = NCTRL(0) | ZLP },
1490cfc4442cSDaniele Palmas 	{ USB_DEVICE(TELIT_VENDOR_ID, 0x9201),				/* Telit LE910R1 flashing device */
1491cfc4442cSDaniele Palmas 	  .driver_info = NCTRL(0) | ZLP },
1492c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */
1493c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff),
1494c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
1495c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0003, 0xff, 0xff, 0xff) },
1496c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0004, 0xff, 0xff, 0xff) },
1497c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0005, 0xff, 0xff, 0xff) },
1498c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0006, 0xff, 0xff, 0xff) },
1499c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0008, 0xff, 0xff, 0xff) },
1500c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0009, 0xff, 0xff, 0xff) },
1501c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000a, 0xff, 0xff, 0xff) },
1502c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000b, 0xff, 0xff, 0xff) },
1503c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000c, 0xff, 0xff, 0xff) },
1504c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000d, 0xff, 0xff, 0xff) },
1505c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000e, 0xff, 0xff, 0xff) },
1506c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000f, 0xff, 0xff, 0xff) },
1507c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0010, 0xff, 0xff, 0xff) },
1508c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0011, 0xff, 0xff, 0xff) },
1509c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0012, 0xff, 0xff, 0xff),
1510c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
1511c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0013, 0xff, 0xff, 0xff) },
1512c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628, 0xff, 0xff, 0xff) },
1513c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0016, 0xff, 0xff, 0xff) },
1514c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0017, 0xff, 0xff, 0xff),
1515c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
1516c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0018, 0xff, 0xff, 0xff) },
15173d1a69e7SEnrico Mioso 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0019, 0xff, 0xff, 0xff),
1518c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
1519c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0020, 0xff, 0xff, 0xff) },
1520c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0021, 0xff, 0xff, 0xff),
1521c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1522c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0022, 0xff, 0xff, 0xff) },
1523c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0023, 0xff, 0xff, 0xff) },
1524c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0024, 0xff, 0xff, 0xff) },
1525c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0025, 0xff, 0xff, 0xff),
1526c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
1527c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0028, 0xff, 0xff, 0xff) },
1528c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0029, 0xff, 0xff, 0xff) },
1529c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0030, 0xff, 0xff, 0xff) },
1530c3a65808SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626, 0xff, 0xff, 0xff),
1531c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | NCTRL(1) | RSVD(4) },
1532c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0032, 0xff, 0xff, 0xff) },
1533c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0033, 0xff, 0xff, 0xff) },
1534ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0034, 0xff, 0xff, 0xff) },
1535eb05ce56SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0037, 0xff, 0xff, 0xff),
1536c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | NCTRL(1) },
1537ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0038, 0xff, 0xff, 0xff) },
1538c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0039, 0xff, 0xff, 0xff) },
1539ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0040, 0xff, 0xff, 0xff) },
1540c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0042, 0xff, 0xff, 0xff),
1541c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1542c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0043, 0xff, 0xff, 0xff) },
1543ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0044, 0xff, 0xff, 0xff) },
1544c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0048, 0xff, 0xff, 0xff) },
1545c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0049, 0xff, 0xff, 0xff),
1546c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
1547ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0050, 0xff, 0xff, 0xff) },
1548c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0051, 0xff, 0xff, 0xff) },
1549c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0052, 0xff, 0xff, 0xff),
1550c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1551c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0054, 0xff, 0xff, 0xff) },
1552c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0055, 0xff, 0xff, 0xff),
1553c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
1554ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0056, 0xff, 0xff, 0xff) },
1555c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0057, 0xff, 0xff, 0xff) },
1556c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0058, 0xff, 0xff, 0xff),
1557c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1558c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0061, 0xff, 0xff, 0xff) },
1559c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0062, 0xff, 0xff, 0xff) },
1560c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0063, 0xff, 0xff, 0xff),
1561c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1562c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0064, 0xff, 0xff, 0xff) },
1563ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0065, 0xff, 0xff, 0xff) },
1564c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0066, 0xff, 0xff, 0xff) },
1565ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0067, 0xff, 0xff, 0xff) },
1566c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0069, 0xff, 0xff, 0xff) },
1567c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0076, 0xff, 0xff, 0xff) },
1568ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0077, 0xff, 0xff, 0xff) },
1569c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0078, 0xff, 0xff, 0xff) },
1570ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0079, 0xff, 0xff, 0xff) },
1571c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0082, 0xff, 0xff, 0xff) },
1572ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0083, 0xff, 0xff, 0xff) },
1573c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0086, 0xff, 0xff, 0xff) },
1574ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0087, 0xff, 0xff, 0xff) },
15751608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0088, 0xff, 0xff, 0xff) },
15761608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0089, 0xff, 0xff, 0xff) },
15771608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0090, 0xff, 0xff, 0xff) },
15781608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0091, 0xff, 0xff, 0xff) },
15791608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0092, 0xff, 0xff, 0xff) },
15801608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0093, 0xff, 0xff, 0xff) },
15811608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0094, 0xff, 0xff, 0xff) },
15821608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0095, 0xff, 0xff, 0xff) },
15831608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0096, 0xff, 0xff, 0xff) },
15841608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0097, 0xff, 0xff, 0xff) },
1585c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0104, 0xff, 0xff, 0xff),
1586c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1587ecfa153eSMauro Carvalho Chehab 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0105, 0xff, 0xff, 0xff) },
15888d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0106, 0xff, 0xff, 0xff) },
15898d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0108, 0xff, 0xff, 0xff) },
1590c58a76cdSDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0113, 0xff, 0xff, 0xff),
1591c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
15928d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0117, 0xff, 0xff, 0xff) },
15931452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0118, 0xff, 0xff, 0xff),
1594c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
15951452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0121, 0xff, 0xff, 0xff),
1596c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
15978d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0122, 0xff, 0xff, 0xff) },
15981452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0123, 0xff, 0xff, 0xff),
1599c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
16001452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0124, 0xff, 0xff, 0xff),
1601c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
16021452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0125, 0xff, 0xff, 0xff),
1603c3a65808SJohan Hovold 	  .driver_info = RSVD(6) },
16041452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0126, 0xff, 0xff, 0xff),
1605c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
16068d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0128, 0xff, 0xff, 0xff) },
160731b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0135, 0xff, 0xff, 0xff) },
160831b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0136, 0xff, 0xff, 0xff) },
160931b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0137, 0xff, 0xff, 0xff) },
161031b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0139, 0xff, 0xff, 0xff) },
16118d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0142, 0xff, 0xff, 0xff) },
16128d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0143, 0xff, 0xff, 0xff) },
16138d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0144, 0xff, 0xff, 0xff) },
16148d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0145, 0xff, 0xff, 0xff) },
16158d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0148, 0xff, 0xff, 0xff) },
16168d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0151, 0xff, 0xff, 0xff) },
16178d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0153, 0xff, 0xff, 0xff) },
16188d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0155, 0xff, 0xff, 0xff) },
16198d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0156, 0xff, 0xff, 0xff) },
1620160c9425SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0157, 0xff, 0xff, 0xff),
1621c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
16221452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0158, 0xff, 0xff, 0xff),
1623c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
16248d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0159, 0xff, 0xff, 0xff) },
16258d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0161, 0xff, 0xff, 0xff) },
16268d87cacdSzhao.ming9@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0162, 0xff, 0xff, 0xff) },
16271608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0164, 0xff, 0xff, 0xff) },
16281608ea5fSRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) },
16295889d3d4SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0167, 0xff, 0xff, 0xff),
1630c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1631306f780bSLech Perczak 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0189, 0xff, 0xff, 0xff),
1632306f780bSLech Perczak 	  .driver_info = RSVD(4) },
16334b35f1c5SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0191, 0xff, 0xff, 0xff), /* ZTE EuFi890 */
1634c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
163531b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0196, 0xff, 0xff, 0xff) },
163631b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0197, 0xff, 0xff, 0xff) },
16374b35f1c5SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0199, 0xff, 0xff, 0xff), /* ZTE MF820S */
1638c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
163931b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0200, 0xff, 0xff, 0xff) },
164031b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0201, 0xff, 0xff, 0xff) },
164131b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0254, 0xff, 0xff, 0xff) },
16424b35f1c5SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0257, 0xff, 0xff, 0xff), /* ZTE MF821 */
1643c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
16442291dff0SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0265, 0xff, 0xff, 0xff), /* ONDA MT8205 */
1645c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1646fab38246SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0284, 0xff, 0xff, 0xff), /* ZTE MF880 */
1647c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
164831b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0317, 0xff, 0xff, 0xff) },
164909110529SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0326, 0xff, 0xff, 0xff),
1650c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
165131b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0330, 0xff, 0xff, 0xff) },
165231b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0395, 0xff, 0xff, 0xff) },
165373c042dfSTeppo Kotilainen 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0412, 0xff, 0xff, 0xff), /* Telewell TW-LTE 4G */
1654c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
165531b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0414, 0xff, 0xff, 0xff) },
165631b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0417, 0xff, 0xff, 0xff) },
1657aed2a262SJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x0601, 0xff) },	/* GosunCn ZTE WeLink ME3630 (RNDIS mode) */
165870a7444cSJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x0602, 0xff) },	/* GosunCn ZTE WeLink ME3630 (MBIM mode) */
1659f264ddeaSAndrew Bird (Sphere Systems) 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff),
1660c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1661f264ddeaSAndrew Bird (Sphere Systems) 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff),
1662c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
16631452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff),
1664c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
166531b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1018, 0xff, 0xff, 0xff) },
16664b35f1c5SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1021, 0xff, 0xff, 0xff),
1667c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
1668a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1057, 0xff, 0xff, 0xff) },
1669a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1058, 0xff, 0xff, 0xff) },
1670a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1059, 0xff, 0xff, 0xff) },
1671a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1060, 0xff, 0xff, 0xff) },
1672a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1061, 0xff, 0xff, 0xff) },
1673a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1062, 0xff, 0xff, 0xff) },
1674a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1063, 0xff, 0xff, 0xff) },
1675a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1064, 0xff, 0xff, 0xff) },
1676a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1065, 0xff, 0xff, 0xff) },
1677a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1066, 0xff, 0xff, 0xff) },
1678a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1067, 0xff, 0xff, 0xff) },
1679a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1068, 0xff, 0xff, 0xff) },
1680a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1069, 0xff, 0xff, 0xff) },
1681a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1070, 0xff, 0xff, 0xff) },
1682a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1071, 0xff, 0xff, 0xff) },
1683a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1072, 0xff, 0xff, 0xff) },
1684a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1073, 0xff, 0xff, 0xff) },
1685a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1074, 0xff, 0xff, 0xff) },
1686a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1075, 0xff, 0xff, 0xff) },
1687a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1076, 0xff, 0xff, 0xff) },
1688a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1077, 0xff, 0xff, 0xff) },
1689a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1078, 0xff, 0xff, 0xff) },
1690a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1079, 0xff, 0xff, 0xff) },
1691a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1080, 0xff, 0xff, 0xff) },
1692a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1081, 0xff, 0xff, 0xff) },
1693a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1082, 0xff, 0xff, 0xff) },
1694a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1083, 0xff, 0xff, 0xff) },
1695a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1084, 0xff, 0xff, 0xff) },
1696a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1085, 0xff, 0xff, 0xff) },
1697a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1086, 0xff, 0xff, 0xff) },
1698a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1087, 0xff, 0xff, 0xff) },
1699a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1088, 0xff, 0xff, 0xff) },
1700a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1089, 0xff, 0xff, 0xff) },
1701a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1090, 0xff, 0xff, 0xff) },
1702a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1091, 0xff, 0xff, 0xff) },
1703a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1092, 0xff, 0xff, 0xff) },
1704a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1093, 0xff, 0xff, 0xff) },
1705a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1094, 0xff, 0xff, 0xff) },
1706a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1095, 0xff, 0xff, 0xff) },
1707a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1096, 0xff, 0xff, 0xff) },
1708a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1097, 0xff, 0xff, 0xff) },
1709a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1098, 0xff, 0xff, 0xff) },
1710a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1099, 0xff, 0xff, 0xff) },
1711a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1100, 0xff, 0xff, 0xff) },
1712a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1101, 0xff, 0xff, 0xff) },
1713a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1102, 0xff, 0xff, 0xff) },
1714a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1103, 0xff, 0xff, 0xff) },
1715a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1104, 0xff, 0xff, 0xff) },
1716a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1105, 0xff, 0xff, 0xff) },
1717a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1106, 0xff, 0xff, 0xff) },
1718a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1107, 0xff, 0xff, 0xff) },
1719a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1108, 0xff, 0xff, 0xff) },
1720a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1109, 0xff, 0xff, 0xff) },
1721a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1110, 0xff, 0xff, 0xff) },
1722a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1111, 0xff, 0xff, 0xff) },
1723a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1112, 0xff, 0xff, 0xff) },
1724a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1113, 0xff, 0xff, 0xff) },
1725a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1114, 0xff, 0xff, 0xff) },
1726a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1115, 0xff, 0xff, 0xff) },
1727a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1116, 0xff, 0xff, 0xff) },
1728a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1117, 0xff, 0xff, 0xff) },
1729a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1118, 0xff, 0xff, 0xff) },
1730a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1119, 0xff, 0xff, 0xff) },
1731a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1120, 0xff, 0xff, 0xff) },
1732a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1121, 0xff, 0xff, 0xff) },
1733a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1122, 0xff, 0xff, 0xff) },
1734a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1123, 0xff, 0xff, 0xff) },
1735a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1124, 0xff, 0xff, 0xff) },
1736a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1125, 0xff, 0xff, 0xff) },
1737a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1126, 0xff, 0xff, 0xff) },
1738a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1127, 0xff, 0xff, 0xff) },
1739a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1128, 0xff, 0xff, 0xff) },
1740a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1129, 0xff, 0xff, 0xff) },
1741a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1130, 0xff, 0xff, 0xff) },
1742a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1131, 0xff, 0xff, 0xff) },
1743a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1132, 0xff, 0xff, 0xff) },
1744a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1133, 0xff, 0xff, 0xff) },
1745a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1134, 0xff, 0xff, 0xff) },
1746a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1135, 0xff, 0xff, 0xff) },
1747a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1136, 0xff, 0xff, 0xff) },
1748a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1137, 0xff, 0xff, 0xff) },
1749a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1138, 0xff, 0xff, 0xff) },
1750a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1139, 0xff, 0xff, 0xff) },
1751a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1140, 0xff, 0xff, 0xff) },
1752a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1141, 0xff, 0xff, 0xff) },
1753a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1142, 0xff, 0xff, 0xff) },
1754a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1143, 0xff, 0xff, 0xff) },
1755a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1144, 0xff, 0xff, 0xff) },
1756a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1145, 0xff, 0xff, 0xff) },
1757a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1146, 0xff, 0xff, 0xff) },
1758a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1147, 0xff, 0xff, 0xff) },
1759a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1148, 0xff, 0xff, 0xff) },
1760a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1149, 0xff, 0xff, 0xff) },
1761a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1150, 0xff, 0xff, 0xff) },
1762a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1151, 0xff, 0xff, 0xff) },
1763a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1152, 0xff, 0xff, 0xff) },
1764a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1153, 0xff, 0xff, 0xff) },
1765a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1154, 0xff, 0xff, 0xff) },
1766a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1155, 0xff, 0xff, 0xff) },
1767a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1156, 0xff, 0xff, 0xff) },
1768a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1157, 0xff, 0xff, 0xff) },
1769a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1158, 0xff, 0xff, 0xff) },
1770a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1159, 0xff, 0xff, 0xff) },
1771a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1160, 0xff, 0xff, 0xff) },
1772a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1161, 0xff, 0xff, 0xff) },
1773a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1162, 0xff, 0xff, 0xff) },
1774a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1163, 0xff, 0xff, 0xff) },
1775a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1164, 0xff, 0xff, 0xff) },
1776a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1165, 0xff, 0xff, 0xff) },
1777a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1166, 0xff, 0xff, 0xff) },
1778a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1167, 0xff, 0xff, 0xff) },
1779a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1168, 0xff, 0xff, 0xff) },
1780a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1169, 0xff, 0xff, 0xff) },
1781a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1170, 0xff, 0xff, 0xff) },
1782a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1244, 0xff, 0xff, 0xff) },
17831452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1245, 0xff, 0xff, 0xff),
1784c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1785a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1246, 0xff, 0xff, 0xff) },
17861452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1247, 0xff, 0xff, 0xff),
1787c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1788a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1248, 0xff, 0xff, 0xff) },
1789a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1249, 0xff, 0xff, 0xff) },
1790a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1250, 0xff, 0xff, 0xff) },
1791a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1251, 0xff, 0xff, 0xff) },
17921452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1252, 0xff, 0xff, 0xff),
1793c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1794a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1253, 0xff, 0xff, 0xff) },
17951452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1254, 0xff, 0xff, 0xff),
1796c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
17971452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1255, 0xff, 0xff, 0xff),
1798c3a65808SJohan Hovold 	  .driver_info = RSVD(3) | RSVD(4) },
17991452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1256, 0xff, 0xff, 0xff),
1800c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1801a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1257, 0xff, 0xff, 0xff) },
1802a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1258, 0xff, 0xff, 0xff) },
1803a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1259, 0xff, 0xff, 0xff) },
1804a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1260, 0xff, 0xff, 0xff) },
1805a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1261, 0xff, 0xff, 0xff) },
1806a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1262, 0xff, 0xff, 0xff) },
1807a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1263, 0xff, 0xff, 0xff) },
1808a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1264, 0xff, 0xff, 0xff) },
1809a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1265, 0xff, 0xff, 0xff) },
1810a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1266, 0xff, 0xff, 0xff) },
1811a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1267, 0xff, 0xff, 0xff) },
1812a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1268, 0xff, 0xff, 0xff) },
1813a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1269, 0xff, 0xff, 0xff) },
18143635c7e2SRaymond Wanyoike 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1270, 0xff, 0xff, 0xff),
1815c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
1816a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1271, 0xff, 0xff, 0xff) },
1817a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1272, 0xff, 0xff, 0xff) },
1818a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1273, 0xff, 0xff, 0xff) },
1819a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1274, 0xff, 0xff, 0xff) },
18206420a569SLech Perczak 	{ USB_DEVICE(ZTE_VENDOR_ID, 0x1275),	/* ZTE P685M */
18216420a569SLech Perczak 	  .driver_info = RSVD(3) | RSVD(4) },
1822a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1276, 0xff, 0xff, 0xff) },
1823a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1277, 0xff, 0xff, 0xff) },
1824a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1278, 0xff, 0xff, 0xff) },
1825a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1279, 0xff, 0xff, 0xff) },
1826a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1280, 0xff, 0xff, 0xff) },
1827a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1281, 0xff, 0xff, 0xff) },
1828a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1282, 0xff, 0xff, 0xff) },
1829a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1283, 0xff, 0xff, 0xff) },
1830a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1284, 0xff, 0xff, 0xff) },
1831a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1285, 0xff, 0xff, 0xff) },
1832a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1286, 0xff, 0xff, 0xff) },
1833a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1287, 0xff, 0xff, 0xff) },
1834a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1288, 0xff, 0xff, 0xff) },
1835a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1289, 0xff, 0xff, 0xff) },
1836a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1290, 0xff, 0xff, 0xff) },
1837a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1291, 0xff, 0xff, 0xff) },
1838a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1292, 0xff, 0xff, 0xff) },
1839a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1293, 0xff, 0xff, 0xff) },
1840a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1294, 0xff, 0xff, 0xff) },
1841a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1295, 0xff, 0xff, 0xff) },
1842a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1296, 0xff, 0xff, 0xff) },
1843a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1297, 0xff, 0xff, 0xff) },
1844a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1298, 0xff, 0xff, 0xff) },
1845a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1299, 0xff, 0xff, 0xff) },
1846a71ee85eSzhao1980ming 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1300, 0xff, 0xff, 0xff) },
184731b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1301, 0xff, 0xff, 0xff) },
184831b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1302, 0xff, 0xff, 0xff) },
184931b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1303, 0xff, 0xff, 0xff) },
185031b6a104Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1333, 0xff, 0xff, 0xff) },
18514b35f1c5SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1401, 0xff, 0xff, 0xff),
1852c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
18538e16e33cSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1402, 0xff, 0xff, 0xff),
1854c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
18554b35f1c5SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1424, 0xff, 0xff, 0xff),
1856c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
18574b35f1c5SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1425, 0xff, 0xff, 0xff),
1858c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
18594b35f1c5SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff),  /* ZTE MF91 */
1860c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
18613d28bd84SBernd Wachter 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1428, 0xff, 0xff, 0xff),  /* Telewell TW-LTE 4G v2 */
1862c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
186370a7444cSJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x1476, 0xff) },	/* GosunCn ZTE WeLink ME3630 (ECM/NCM mode) */
18647e7ae38bSYoshiaki Okamoto 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1481, 0xff, 0x00, 0x00) }, /* ZTE MF871A */
1865d48384c7SPawel Dembicki 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1485, 0xff, 0xff, 0xff),  /* ZTE MF286D */
1866d48384c7SPawel Dembicki 	  .driver_info = RSVD(5) },
18670636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) },
18680636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) },
18690636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) },
18700636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1545, 0xff, 0xff, 0xff) },
18710636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1546, 0xff, 0xff, 0xff) },
18720636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1547, 0xff, 0xff, 0xff) },
18730636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1565, 0xff, 0xff, 0xff) },
18740636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1566, 0xff, 0xff, 0xff) },
18750636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1567, 0xff, 0xff, 0xff) },
18760636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1589, 0xff, 0xff, 0xff) },
18770636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1590, 0xff, 0xff, 0xff) },
18780636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1591, 0xff, 0xff, 0xff) },
18790636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1592, 0xff, 0xff, 0xff) },
18800636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1594, 0xff, 0xff, 0xff) },
18810636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1596, 0xff, 0xff, 0xff) },
18820636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1598, 0xff, 0xff, 0xff) },
18830636fc50SRui li 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1600, 0xff, 0xff, 0xff) },
1884c3a65808SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, 0xff, 0xff),
1885c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | RSVD(4) },
1886b9e44fe5Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) },
1887b9e44fe5Sli.rui27@zte.com.cn 
1888c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) }, /* ZTE CDMA products */
1889c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0027, 0xff, 0xff, 0xff) },
1890c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) },
1891c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0060, 0xff, 0xff, 0xff) },
1892c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) },
1893c420befdSHerton Ronaldo Krzesinski 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0073, 0xff, 0xff, 0xff) },
18941452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff),
1895c3a65808SJohan Hovold 	  .driver_info = RSVD(1) },
18961452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0133, 0xff, 0xff, 0xff),
1897c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
18981452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0141, 0xff, 0xff, 0xff),
1899c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
1900b9e44fe5Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0147, 0xff, 0xff, 0xff) },
1901b9e44fe5Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0152, 0xff, 0xff, 0xff) },
19021452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0168, 0xff, 0xff, 0xff),
1903c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
1904b9e44fe5Sli.rui27@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0170, 0xff, 0xff, 0xff) },
19051452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0176, 0xff, 0xff, 0xff),
1906c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
19071452df6fSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0178, 0xff, 0xff, 0xff),
1908c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
1909f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff42, 0xff, 0xff, 0xff) },
1910f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff43, 0xff, 0xff, 0xff) },
1911f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff44, 0xff, 0xff, 0xff) },
1912f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff45, 0xff, 0xff, 0xff) },
1913f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff46, 0xff, 0xff, 0xff) },
1914f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff47, 0xff, 0xff, 0xff) },
1915f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff48, 0xff, 0xff, 0xff) },
1916f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff49, 0xff, 0xff, 0xff) },
1917f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4a, 0xff, 0xff, 0xff) },
1918f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4b, 0xff, 0xff, 0xff) },
1919f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4c, 0xff, 0xff, 0xff) },
1920f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4d, 0xff, 0xff, 0xff) },
1921f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4e, 0xff, 0xff, 0xff) },
1922f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4f, 0xff, 0xff, 0xff) },
1923f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff50, 0xff, 0xff, 0xff) },
1924f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff51, 0xff, 0xff, 0xff) },
1925f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff52, 0xff, 0xff, 0xff) },
1926f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff53, 0xff, 0xff, 0xff) },
1927f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff54, 0xff, 0xff, 0xff) },
1928f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff55, 0xff, 0xff, 0xff) },
1929f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff56, 0xff, 0xff, 0xff) },
1930f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff57, 0xff, 0xff, 0xff) },
1931f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff58, 0xff, 0xff, 0xff) },
1932f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff59, 0xff, 0xff, 0xff) },
1933f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5a, 0xff, 0xff, 0xff) },
1934f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5b, 0xff, 0xff, 0xff) },
1935f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5c, 0xff, 0xff, 0xff) },
1936f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5d, 0xff, 0xff, 0xff) },
1937f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5e, 0xff, 0xff, 0xff) },
1938f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5f, 0xff, 0xff, 0xff) },
1939f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff60, 0xff, 0xff, 0xff) },
1940f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff61, 0xff, 0xff, 0xff) },
1941f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff62, 0xff, 0xff, 0xff) },
1942f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff63, 0xff, 0xff, 0xff) },
1943f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff64, 0xff, 0xff, 0xff) },
1944f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff65, 0xff, 0xff, 0xff) },
1945f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff66, 0xff, 0xff, 0xff) },
1946f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff67, 0xff, 0xff, 0xff) },
1947f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff68, 0xff, 0xff, 0xff) },
1948f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff69, 0xff, 0xff, 0xff) },
1949f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6a, 0xff, 0xff, 0xff) },
1950f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6b, 0xff, 0xff, 0xff) },
1951f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6c, 0xff, 0xff, 0xff) },
1952f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6d, 0xff, 0xff, 0xff) },
1953f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6e, 0xff, 0xff, 0xff) },
1954f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6f, 0xff, 0xff, 0xff) },
1955f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff70, 0xff, 0xff, 0xff) },
1956f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff71, 0xff, 0xff, 0xff) },
1957f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff72, 0xff, 0xff, 0xff) },
1958f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff73, 0xff, 0xff, 0xff) },
1959f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff74, 0xff, 0xff, 0xff) },
1960f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff75, 0xff, 0xff, 0xff) },
1961f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff76, 0xff, 0xff, 0xff) },
1962f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff77, 0xff, 0xff, 0xff) },
1963f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff78, 0xff, 0xff, 0xff) },
1964f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff79, 0xff, 0xff, 0xff) },
1965f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7a, 0xff, 0xff, 0xff) },
1966f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7b, 0xff, 0xff, 0xff) },
1967f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7c, 0xff, 0xff, 0xff) },
1968f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7d, 0xff, 0xff, 0xff) },
1969f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7e, 0xff, 0xff, 0xff) },
1970f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7f, 0xff, 0xff, 0xff) },
1971f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff80, 0xff, 0xff, 0xff) },
1972f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff81, 0xff, 0xff, 0xff) },
1973f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff82, 0xff, 0xff, 0xff) },
1974f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff83, 0xff, 0xff, 0xff) },
1975f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff84, 0xff, 0xff, 0xff) },
1976f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff85, 0xff, 0xff, 0xff) },
1977f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff86, 0xff, 0xff, 0xff) },
1978f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff87, 0xff, 0xff, 0xff) },
1979f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff88, 0xff, 0xff, 0xff) },
1980f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff89, 0xff, 0xff, 0xff) },
1981f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8a, 0xff, 0xff, 0xff) },
19824d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8b, 0xff, 0xff, 0xff) },
19834d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8c, 0xff, 0xff, 0xff) },
19844d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8d, 0xff, 0xff, 0xff) },
19854d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8e, 0xff, 0xff, 0xff) },
19864d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8f, 0xff, 0xff, 0xff) },
19874d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff90, 0xff, 0xff, 0xff) },
19884d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff91, 0xff, 0xff, 0xff) },
19894d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff92, 0xff, 0xff, 0xff) },
19904d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff93, 0xff, 0xff, 0xff) },
19914d90b819S张君 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff94, 0xff, 0xff, 0xff) },
199274d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff9f, 0xff, 0xff, 0xff) },
199374d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa0, 0xff, 0xff, 0xff) },
199474d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa1, 0xff, 0xff, 0xff) },
199574d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa2, 0xff, 0xff, 0xff) },
199674d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa3, 0xff, 0xff, 0xff) },
199774d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa4, 0xff, 0xff, 0xff) },
199874d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa5, 0xff, 0xff, 0xff) },
199974d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa6, 0xff, 0xff, 0xff) },
200074d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa7, 0xff, 0xff, 0xff) },
200174d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa8, 0xff, 0xff, 0xff) },
200274d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa9, 0xff, 0xff, 0xff) },
200374d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffaa, 0xff, 0xff, 0xff) },
200474d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffab, 0xff, 0xff, 0xff) },
200574d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffac, 0xff, 0xff, 0xff) },
200674d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffae, 0xff, 0xff, 0xff) },
200774d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffaf, 0xff, 0xff, 0xff) },
200874d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb0, 0xff, 0xff, 0xff) },
200974d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb1, 0xff, 0xff, 0xff) },
201074d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb2, 0xff, 0xff, 0xff) },
201174d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb3, 0xff, 0xff, 0xff) },
201274d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb4, 0xff, 0xff, 0xff) },
201374d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb5, 0xff, 0xff, 0xff) },
201474d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb6, 0xff, 0xff, 0xff) },
201574d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb7, 0xff, 0xff, 0xff) },
201674d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb8, 0xff, 0xff, 0xff) },
201774d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb9, 0xff, 0xff, 0xff) },
201874d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffba, 0xff, 0xff, 0xff) },
201974d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbb, 0xff, 0xff, 0xff) },
202074d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbc, 0xff, 0xff, 0xff) },
202174d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbd, 0xff, 0xff, 0xff) },
202274d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbe, 0xff, 0xff, 0xff) },
202374d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbf, 0xff, 0xff, 0xff) },
202474d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc0, 0xff, 0xff, 0xff) },
202574d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc1, 0xff, 0xff, 0xff) },
202674d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc2, 0xff, 0xff, 0xff) },
202774d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc3, 0xff, 0xff, 0xff) },
202874d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc4, 0xff, 0xff, 0xff) },
202974d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc5, 0xff, 0xff, 0xff) },
203074d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc6, 0xff, 0xff, 0xff) },
203174d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc7, 0xff, 0xff, 0xff) },
203274d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc8, 0xff, 0xff, 0xff) },
203374d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc9, 0xff, 0xff, 0xff) },
203474d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffca, 0xff, 0xff, 0xff) },
203574d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffcb, 0xff, 0xff, 0xff) },
203674d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffcc, 0xff, 0xff, 0xff) },
203774d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffcd, 0xff, 0xff, 0xff) },
203874d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffce, 0xff, 0xff, 0xff) },
203974d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffcf, 0xff, 0xff, 0xff) },
204074d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd0, 0xff, 0xff, 0xff) },
204174d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd1, 0xff, 0xff, 0xff) },
204274d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd2, 0xff, 0xff, 0xff) },
204374d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd3, 0xff, 0xff, 0xff) },
204474d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd4, 0xff, 0xff, 0xff) },
204574d2a91aSLei Liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd5, 0xff, 0xff, 0xff) },
2046f0d09463Slei liu 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffe9, 0xff, 0xff, 0xff) },
2047f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffec, 0xff, 0xff, 0xff) },
2048f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffee, 0xff, 0xff, 0xff) },
2049f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfff6, 0xff, 0xff, 0xff) },
2050f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfff7, 0xff, 0xff, 0xff) },
2051f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfff8, 0xff, 0xff, 0xff) },
2052f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfff9, 0xff, 0xff, 0xff) },
2053f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfffb, 0xff, 0xff, 0xff) },
2054f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfffc, 0xff, 0xff, 0xff) },
2055f8c0e057SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MG880, 0xff, 0xff, 0xff) },
205663a901c0SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) },
205763a901c0SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) },
205863a901c0SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710T, 0xff, 0xff, 0xff) },
205946b5a277Szheng.zhijian@zte.com.cn 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2718, 0xff, 0xff, 0xff),
2060c3a65808SJohan Hovold 	 .driver_info = NCTRL(1) | NCTRL(2) | NCTRL(3) | NCTRL(4) },
206163a901c0SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AD3812, 0xff, 0xff, 0xff),
2062c3a65808SJohan Hovold 	 .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) },
206363a901c0SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2716, 0xff, 0xff, 0xff),
2064c3a65808SJohan Hovold 	 .driver_info = NCTRL(1) | NCTRL(2) | NCTRL(3) },
206519ab6bc5SLiu.Zhao 	{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_ME3620_L),
2066c3a65808SJohan Hovold 	 .driver_info = RSVD(3) | RSVD(4) | RSVD(5) },
206719ab6bc5SLiu.Zhao 	{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_ME3620_MBIM),
2068c3a65808SJohan Hovold 	 .driver_info = RSVD(2) | RSVD(3) | RSVD(4) },
206919ab6bc5SLiu.Zhao 	{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_ME3620_X),
2070c3a65808SJohan Hovold 	 .driver_info = RSVD(3) | RSVD(4) | RSVD(5) },
207119ab6bc5SLiu.Zhao 	{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_ZM8620_X),
2072c3a65808SJohan Hovold 	 .driver_info = RSVD(3) | RSVD(4) | RSVD(5) },
2073ba9edaa4SBjørn Mork 	{ USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x01) },
2074ba9edaa4SBjørn Mork 	{ USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x05) },
2075ba9edaa4SBjørn Mork 	{ USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x86, 0x10) },
2076ba9edaa4SBjørn Mork 
207728fb6682SJesse Sung 	{ USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
2078c00deaa5SPascal Terjan 	{ USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
2079ff854ce0SZhang Le 	{ USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5) }, /* Yes, ALINK_VENDOR_ID */
2080bf162019SHuang Ying 	{ USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5A) },
2081e3a31745SBrad Lu 	{ USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H21_4512) },
2082e3a31745SBrad Lu 	{ USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H21_4523) },
2083e3a31745SBrad Lu 	{ USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4515) },
2084646d90e2SÖmer Sezgin Ugurlu 	{ USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4518) },
2085e3a31745SBrad Lu 	{ USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4519) },
208675f47214SPeter Magdina 	{ USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_PRODUCT_G450) },
2087334f9b0fSMichele Valzelli 	{ USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_PRODUCT_HSDPA_MINICARD ) }, /* Toshiba 3G HSDPA == Novatel Expedite EU870D MiniCard */
2088c3325eb1SAnssi Hannula 	{ USB_DEVICE(ALINK_VENDOR_ID, 0x9000) },
20895c3e4076SDan Williams 	{ USB_DEVICE(ALINK_VENDOR_ID, ALINK_PRODUCT_PH300) },
2090c3325eb1SAnssi Hannula 	{ USB_DEVICE_AND_INTERFACE_INFO(ALINK_VENDOR_ID, ALINK_PRODUCT_3GU, 0xff, 0xff, 0xff) },
20913158a8d4SAndrey Skvortsov 	{ USB_DEVICE(ALINK_VENDOR_ID, SIMCOM_PRODUCT_SIM7100E),
2092c3a65808SJohan Hovold 	  .driver_info = RSVD(5) | RSVD(6) },
2093cc6730dfSJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9003, 0xff) },	/* Simcom SIM7500/SIM7600 MBIM mode */
20945417a7e4SJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9011, 0xff),	/* Simcom SIM7500/SIM7600 RNDIS mode */
20955417a7e4SJörgen Storvist 	  .driver_info = RSVD(7) },
20961ac69879SAleksander Morgado 	{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9205, 0xff) },	/* Simcom SIM7070/SIM7080/SIM7090 AT+ECM mode */
20971ac69879SAleksander Morgado 	{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9206, 0xff) },	/* Simcom SIM7070/SIM7080/SIM7090 AT-only mode */
209815badbccSDan Williams 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S_X200),
2099c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | NCTRL(1) | RSVD(4) },
2100f8f0302bSBjørn Mork 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X220_X500D),
2101c3a65808SJohan Hovold 	  .driver_info = RSVD(6) },
2102f8f0302bSBjørn Mork 	{ USB_DEVICE(ALCATEL_VENDOR_ID, 0x0052),
2103c3a65808SJohan Hovold 	  .driver_info = RSVD(6) },
2104f8f0302bSBjørn Mork 	{ USB_DEVICE(ALCATEL_VENDOR_ID, 0x00b6),
2105c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
2106f8f0302bSBjørn Mork 	{ USB_DEVICE(ALCATEL_VENDOR_ID, 0x00b7),
2107c3a65808SJohan Hovold 	  .driver_info = RSVD(5) },
21085ec00854SBjørn Mork 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_L100V),
2109c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2110dd6b48ecSBjørn Mork 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_L800MA),
2111c3a65808SJohan Hovold 	  .driver_info = RSVD(2) },
211212148da6SHuzaifa Sidhpurwala 	{ USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) },
2113fead2ab6SBryan Wu 	{ USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) },
2114617c331dSFlorian Zumbiehl 	{ USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_CARSTICK_LTE),
2115617c331dSFlorian Zumbiehl 	  .driver_info = RSVD(0) },
2116ac7d4ca9SDan Williams 	{ USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14),
2117c3a65808SJohan Hovold 	  .driver_info = NCTRL(0) | NCTRL(1) },
2118638148e2SBjørn Mork 	{ USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W100),
2119c3a65808SJohan Hovold 	  .driver_info = NCTRL(1) | NCTRL(2) | RSVD(3) },
212069341bd1SOKAMOTO Yoshiaki 	{USB_DEVICE(LONGCHEER_VENDOR_ID, FUJISOFT_PRODUCT_FS040U),
2121c3a65808SJohan Hovold 	 .driver_info = RSVD(3)},
21221cab4c68SOliver Neukum 	{ USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, SPEEDUP_PRODUCT_SU9800, 0xff) },
21238fb060daSJohan Hovold 	{ USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9801, 0xff),
2124c3a65808SJohan Hovold 	  .driver_info = RSVD(3) },
21258fb060daSJohan Hovold 	{ USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9803, 0xff),
2126c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2127aeb7de0aSCoia Prant 	{ USB_DEVICE(LONGCHEER_VENDOR_ID, 0x9b05),	/* Longsung U8300 */
2128aeb7de0aSCoia Prant 	  .driver_info = RSVD(4) | RSVD(5) },
2129aeb7de0aSCoia Prant 	{ USB_DEVICE(LONGCHEER_VENDOR_ID, 0x9b3c),	/* Longsung U9300 */
2130aeb7de0aSCoia Prant 	  .driver_info = RSVD(0) | RSVD(4) },
2131cdacb598SDan Williams 	{ USB_DEVICE(LONGCHEER_VENDOR_ID, ZOOM_PRODUCT_4597) },
21327d5c1b9cSRahul Bedarkar 	{ USB_DEVICE(LONGCHEER_VENDOR_ID, IBALL_3_5G_CONNECT) },
2133c983202bSDonny Kurnia 	{ USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_CE100) },
2134012eee15SDan Williams 	{ USB_DEVICE_AND_INTERFACE_INFO(HAIER_VENDOR_ID, HAIER_PRODUCT_CE81B, 0xff, 0xff, 0xff) },
213533c38752Sspark 	/* Pirelli  */
2136dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_C100_1, 0xff) },
2137dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_C100_2, 0xff) },
2138dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1004, 0xff) },
2139dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1005, 0xff) },
2140dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1006, 0xff) },
2141dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1007, 0xff) },
2142dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1008, 0xff) },
2143dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1009, 0xff) },
2144dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100A, 0xff) },
2145dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100B, 0xff) },
2146dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100C, 0xff) },
2147dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100D, 0xff) },
2148dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100E, 0xff) },
2149dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100F, 0xff) },
2150dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1011, 0xff) },
2151dbdf6807SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1012, 0xff) },
2152aa52b3a9SNicolaus Colberg 	/* Cinterion */
2153aa52b3a9SNicolaus Colberg 	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_E) },
2154aa52b3a9SNicolaus Colberg 	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) },
215512df84d4SAleksander Morgado 	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8),
2156c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
21574152b387SJohn Ernberg 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX, 0xff) },
21588ff10bdbSSchemmel Hans-Christoph 	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX),
2159c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2160444f94e9SSchemmel Hans-Christoph 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8_2RMNET, 0xff),
2161c3a65808SJohan Hovold 	  .driver_info = RSVD(4) | RSVD(5) },
2162444f94e9SSchemmel Hans-Christoph 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8_AUDIO, 0xff),
2163c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2164444f94e9SSchemmel Hans-Christoph 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_2RMNET, 0xff) },
2165444f94e9SSchemmel Hans-Christoph 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_AUDIO, 0xff) },
2166dfbac2f4SReinhard Speyerer 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_CLS8, 0xff),
2167dfbac2f4SReinhard Speyerer 	  .driver_info = RSVD(0) | RSVD(4) },
21686d6556c0SGiacinto Cifelli 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EXS82, 0xff) },
2169aa52b3a9SNicolaus Colberg 	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) },
2170aa52b3a9SNicolaus Colberg 	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) },
2171aa52b3a9SNicolaus Colberg 	{ USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDM) },
2172aa52b3a9SNicolaus Colberg 	{ USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDMNET) },
2173aa52b3a9SNicolaus Colberg 	{ USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, /* HC28 enumerates with Siemens or Cinterion VID depending on FW revision */
2174aa52b3a9SNicolaus Colberg 	{ USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) },
2175e478d602SChristoph Schemmel 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_MBIM, 0xff),
2176e478d602SChristoph Schemmel 	  .driver_info = RSVD(3)},
2177e478d602SChristoph Schemmel 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_RMNET, 0xff),
2178e478d602SChristoph Schemmel 	  .driver_info = RSVD(0)},
2179158f7585SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_2_MBIM, 0xff),
2180158f7585SSlark Xiao 	  .driver_info = RSVD(3)},
2181158f7585SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_2_RMNET, 0xff),
2182158f7585SSlark Xiao 	  .driver_info = RSVD(0)},
2183b4a64ed6SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WA, 0xff),
2184b4a64ed6SSlark Xiao 	  .driver_info = RSVD(3)},
21858ffe20d0SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WA_RMNET, 0xff),
21868ffe20d0SSlark Xiao 	  .driver_info = RSVD(0) },
2187b4a64ed6SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WB, 0xff),
2188b4a64ed6SSlark Xiao 	  .driver_info = RSVD(3)},
21898ffe20d0SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WB_RMNET, 0xff),
21908ffe20d0SSlark Xiao 	  .driver_info = RSVD(0) },
2191b0ebef36SBjørn Mork 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100),
2192c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2193b0ebef36SBjørn Mork 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD120),
2194c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2195b0ebef36SBjørn Mork 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD140),
2196c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2197d19bf5ceSFilippo Turato 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD145) },
2198b0ebef36SBjørn Mork 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD155),
2199c3a65808SJohan Hovold 	  .driver_info = RSVD(6) },
2200fd8573f5SEnrico Mioso 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200),
2201c3a65808SJohan Hovold 	  .driver_info = RSVD(6) },
2202b0ebef36SBjørn Mork 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD160),
2203c3a65808SJohan Hovold 	  .driver_info = RSVD(6) },
2204533b3994SBjørn Mork 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD500),
2205c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
220676078dc4SMichael Tokarev 	{ USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */
220715b2f320SMarius B. Kotsbak 	{ USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_GT_B3730, USB_CLASS_CDC_DATA, 0x00, 0x00) }, /* Samsung GT-B3730 LTE USB modem.*/
2208c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM600) },
2209c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM610) },
2210c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM500) },
2211c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM510) },
2212c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM800) },
2213c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM900) },
2214c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU818) },
2215c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU816) },
2216c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU828) },
2217c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU826) },
2218c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU518) },
2219c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU516) },
2220c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU528) },
2221c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU526) },
2222c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM600) },
2223c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM610) },
2224c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM500) },
2225c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM510) },
2226c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM800) },
2227c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM900) },
2228c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU718) },
2229c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU716) },
2230c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU728) },
2231c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU726) },
2232c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU518) },
2233c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU516) },
2234c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU528) },
2235c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU526) },
2236c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM600) },
2237c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM610) },
2238c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM500) },
2239c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM510) },
2240c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM800) },
2241c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM900) },
2242c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU718) },
2243c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU716) },
2244c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU728) },
2245c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU726) },
2246c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU518) },
2247c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU516) },
2248c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU528) },
2249c6eb2d75SGavin.zhu 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU526) },
22500ef0be15S说不得 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU881) },
22510ef0be15S说不得 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU882) },
22520ef0be15S说不得 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU581) },
22530ef0be15S说不得 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU582) },
22540ef0be15S说不得 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU583) },
22555b061623SVU Tuan Duc 	{ USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
22563c8c9316SJanne Snabb 	{ USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
2257e423d740SKentaro Matsuyama 	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */
22580d8520a1SMeng Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x00, 0x00) },
22590d8520a1SMeng Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) },
22600d8520a1SMeng Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) },
22610d8520a1SMeng Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) },        /* MediaTek MT6276M modem & app port */
2262aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_1COM, 0x0a, 0x00, 0x00) },
2263aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x02, 0x01) },
2264aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x00, 0x00) },
2265aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x02, 0x01) },
2266aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x00, 0x00) },
2267aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_1COM, 0x02, 0x00, 0x00) },
2268aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_2COM, 0x02, 0x02, 0x01) },
2269aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_1COM, 0x0a, 0x00, 0x00) },
2270aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_2COM, 0x0a, 0x00, 0x00) },
2271aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_1COM, 0x0a, 0x00, 0x00) },
2272aacef9c5SGaosen Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_2COM, 0x0a, 0x00, 0x00) },
227394a85b63SQuentin.Li 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7103_2COM, 0xff, 0x00, 0x00) },
227494a85b63SQuentin.Li 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7106_2COM, 0x02, 0x02, 0x01) },
227594a85b63SQuentin.Li 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) },
227694a85b63SQuentin.Li 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) },
22779201d380SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x7126, 0xff, 0x00, 0x00),
22789201d380SBjørn Mork 	  .driver_info = NCTRL(2) },
22799201d380SBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x7127, 0xff, 0x00, 0x00),
22809201d380SBjørn Mork 	  .driver_info = NCTRL(2) | NCTRL(3) | NCTRL(4) },
2281ec1ccad0SJack Wu 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x7129, 0xff, 0x00, 0x00),        /* MediaTek T7XX  */
2282ec1ccad0SJack Wu 	  .driver_info = NCTRL(2) | NCTRL(3) | NCTRL(4) },
22831e2c4e59SDmitry Shmygov 	{ USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) },
22843e765cabSWilken Gottwalt 	{ USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200),
22853e765cabSWilken Gottwalt 	  .driver_info = RSVD(1) | RSVD(4) },
2286c38e83b6SDaniil Bolsun 	{ USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) },
2287c38e83b6SDaniil Bolsun 	{ USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) },
2288837ddc47SHenryk Heisig 	{ USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, TPLINK_PRODUCT_LTE, 0xff, 0x00, 0x00) },	/* TP-Link LTE Module */
228999beb2e9SBjørn Mork 	{ USB_DEVICE(TPLINK_VENDOR_ID, TPLINK_PRODUCT_MA180),
2290c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
229194190301SBjørn Mork 	{ USB_DEVICE(TPLINK_VENDOR_ID, 0x9000),					/* TP-Link MA260 */
2292c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2293d4fa6815SBjørn Mork 	{ USB_DEVICE(CHANGHONG_VENDOR_ID, CHANGHONG_PRODUCT_CH690) },
2294b5fdde28SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) },			/* D-Link DWM-156 (variant) */
2295b5fdde28SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
2296b5fdde28SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
22974d304a6fSGiuseppe Lippolis 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff),			/* D-Link DWM-158 */
22984d304a6fSGiuseppe Lippolis 	 .driver_info = RSVD(4) | RSVD(5) },
2299169e8654SMaciej S. Szmigiero 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) },			/* D-Link DWM-157 C1 */
2300d48d5691SBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff),			/* D-Link DWM-221 B1 */
2301c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2302fd1b8668SHector Martin 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff),			/* D-Link DWM-222 */
2303c3a65808SJohan Hovold 	  .driver_info = RSVD(4) },
2304552573e4SRogan Dawes 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e3d, 0xff),			/* D-Link DWM-222 A2 */
2305552573e4SRogan Dawes 	  .driver_info = RSVD(4) },
2306ca247635SAlexandr \"Sky\" Ivanov 	{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) },	/* D-Link DWM-152/C1 */
2307ca247635SAlexandr \"Sky\" Ivanov 	{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) },	/* D-Link DWM-156/C1 */
2308cf1b1803SLubomir Rintel 	{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) },	/* D-Link DWM-156/A3 */
2309dfee7e2fSPawel Dembicki 	{ USB_DEVICE_INTERFACE_CLASS(0x1435, 0xd191, 0xff),			/* Wistron Neweb D19Q1 */
2310dfee7e2fSPawel Dembicki 	  .driver_info = RSVD(1) | RSVD(4) },
2311007d20dcSPawel Dembicki 	{ USB_DEVICE_INTERFACE_CLASS(0x1690, 0x7588, 0xff),			/* ASKEY WWHC050 */
2312007d20dcSPawel Dembicki 	  .driver_info = RSVD(1) | RSVD(4) },
231384f3b43fSBjørn Mork 	{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2031, 0xff),			/* Olicard 600 */
231484f3b43fSBjørn Mork 	  .driver_info = RSVD(4) },
23156cb2669cSPawel Dembicki 	{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2033, 0xff),			/* BroadMobi BM806U */
23166cb2669cSPawel Dembicki 	  .driver_info = RSVD(4) },
2317e5d8badfSBob Ham 	{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2060, 0xff),			/* BroadMobi BM818 */
2318e5d8badfSBob Ham 	  .driver_info = RSVD(4) },
2319f6d7fb37SClaudio Cappelli 	{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x4000, 0xff) },			/* OLICARD300 - MT6225 */
2320f4c19b8eSGreg Kroah-Hartman 	{ USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) },
2321d7730273SBrennan Ashton 	{ USB_DEVICE(VIATELECOM_VENDOR_ID, VIATELECOM_PRODUCT_CDS7) },
23226695593eSAleksandr Makarov 	{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD200, 0xff, 0xff, 0xff) },
232340d9c325SAleksandr Makarov 	{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_6802, 0xff, 0xff, 0xff) },
232440d9c325SAleksandr Makarov 	{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD300, 0xff, 0xff, 0xff) },
23255d03a2fdSBjørn Mork 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x421d, 0xff, 0xff, 0xff) },	/* HP lt2523 (Novatel E371) */
2326d57ec3c8STore Anderson 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x10) },	/* HP lt4132 (Huawei ME906s-158) */
2327d57ec3c8STore Anderson 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x12) },
2328d57ec3c8STore Anderson 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x13) },
2329d57ec3c8STore Anderson 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x14) },
2330d57ec3c8STore Anderson 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x1b) },
2331f0797095SAleksander Morgado 	{ USB_DEVICE(0x0489, 0xe0b4),						/* Foxconn T77W968 */
2332f0797095SAleksander Morgado 	  .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
2333f0797095SAleksander Morgado 	{ USB_DEVICE(0x0489, 0xe0b5),						/* Foxconn T77W968 ESIM */
2334f0797095SAleksander Morgado 	  .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
23353cb3868eSSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0da, 0xff),                     /* Foxconn T99W265 MBIM variant */
23363cb3868eSSlark Xiao 	  .driver_info = RSVD(3) | RSVD(5) },
23379e3eed53SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0db, 0xff),			/* Foxconn T99W265 MBIM */
23389e3eed53SSlark Xiao 	  .driver_info = RSVD(3) },
23394d9488b2SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0ee, 0xff),			/* Foxconn T99W368 MBIM */
23404d9488b2SSlark Xiao 	  .driver_info = RSVD(3) },
23414d9488b2SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0f0, 0xff),			/* Foxconn T99W373 MBIM */
23424d9488b2SSlark Xiao 	  .driver_info = RSVD(3) },
23434e8c0883SSlark Xiao 	{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe145, 0xff),			/* Foxconn T99W651 RNDIS */
23444e8c0883SSlark Xiao 	  .driver_info = RSVD(5) | RSVD(6) },
23455e4d659bSVincent Palatin 	{ USB_DEVICE(0x1508, 0x1001),						/* Fibocom NL668 (IOT version) */
234630360224SJörgen Storvist 	  .driver_info = RSVD(4) | RSVD(5) | RSVD(6) },
2347714adff9SSven Schwermer 	{ USB_DEVICE(0x1782, 0x4d10) },						/* Fibocom L610 (AT mode) */
2348714adff9SSven Schwermer 	{ USB_DEVICE_INTERFACE_CLASS(0x1782, 0x4d11, 0xff) },			/* Fibocom L610 (ECM/RNDIS mode) */
23492c89f65dSVictor Fragoso 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x0001, 0xff, 0xff, 0xff) },	/* Fibocom L716-EU (ECM/RNDIS mode) */
23504b2c01adSJörgen Storvist 	{ USB_DEVICE(0x2cb7, 0x0104),						/* Fibocom NL678 series */
23514b2c01adSJörgen Storvist 	  .driver_info = RSVD(4) | RSVD(5) },
23524b2c01adSJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0105, 0xff),			/* Fibocom NL678 series */
23534b2c01adSJörgen Storvist 	  .driver_info = RSVD(6) },
235407989eb9SSven Schwermer 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0106, 0xff) },			/* Fibocom MA510 (ECM mode w/ diag intf.) */
235507989eb9SSven Schwermer 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x010a, 0xff) },			/* Fibocom MA510 (ECM mode) */
23562829a4e3SZhengjun Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0xff, 0x30) },	/* Fibocom FG150 Diag */
23572829a4e3SZhengjun Zhang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0, 0) },		/* Fibocom FG150 AT */
2358148f4b32SReinhard Speyerer 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0111, 0xff) },			/* Fibocom FM160 (MBIM mode) */
2359836eefa7SReinhard Speyerer 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x0112, 0xff, 0xff, 0x30) },	/* Fibocom FG132 Diag */
2360836eefa7SReinhard Speyerer 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x0112, 0xff, 0xff, 0x40) },	/* Fibocom FG132 AT */
2361836eefa7SReinhard Speyerer 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x0112, 0xff, 0, 0) },		/* Fibocom FG132 NMEA */
2362590d0e13Sbolan wang 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0115, 0xff),			/* Fibocom FM135 (laptop MBIM) */
2363590d0e13Sbolan wang 	  .driver_info = RSVD(5) },
23645e4d659bSVincent Palatin 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a0, 0xff) },			/* Fibocom NL668-AM/NL652-EU (laptop MBIM) */
236588459e3eSMingjie Zhang 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a2, 0xff) },			/* Fibocom FM101-GL (laptop MBIM) */
23664d53c512SPuliang Lu 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a3, 0xff) },			/* Fibocom FM101-GL (laptop MBIM) */
236788459e3eSMingjie Zhang 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a4, 0xff),			/* Fibocom FM101-GL (laptop MBIM) */
236888459e3eSMingjie Zhang 	  .driver_info = RSVD(4) },
2369f91606d7SChuanhong Guo 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a04, 0xff) },			/* Fibocom FM650-CN (ECM mode) */
2370f91606d7SChuanhong Guo 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a05, 0xff) },			/* Fibocom FM650-CN (NCM mode) */
2371f91606d7SChuanhong Guo 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a06, 0xff) },			/* Fibocom FM650-CN (RNDIS mode) */
2372f91606d7SChuanhong Guo 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a07, 0xff) },			/* Fibocom FM650-CN (MBIM mode) */
23730947a241SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d41, 0xff, 0, 0) },		/* MeiG Smart SLM320 */
23740947a241SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d57, 0xff, 0, 0) },		/* MeiG Smart SLM770A */
23750947a241SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d22, 0xff, 0, 0) },		/* MeiG Smart SRM815 */
23760947a241SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d22, 0xff, 0x10, 0x02) },	/* MeiG Smart SLM828 */
23770947a241SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d22, 0xff, 0x10, 0x03) },	/* MeiG Smart SLM828 */
23780947a241SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d22, 0xff, 0xff, 0x30) },	/* MeiG Smart SRM815 and SRM825L */
23790947a241SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d22, 0xff, 0xff, 0x40) },	/* MeiG Smart SRM825L */
23800947a241SJohan Hovold 	{ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d22, 0xff, 0xff, 0x60) },	/* MeiG Smart SRM825L */
23810e2d6795SDaniel Palmer 	{ USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) },			/* LongSung M5710 */
238208d4ef5cSJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) },			/* GosunCn GM500 RNDIS */
238308d4ef5cSJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) },			/* GosunCn GM500 MBIM */
238408d4ef5cSJörgen Storvist 	{ USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1406, 0xff) },			/* GosunCn GM500 ECM/NCM */
23850772a609SVanillan Wang 	{ USB_DEVICE(0x33f8, 0x0104),						/* Rolling RW101-GL (laptop RMNET) */
23860772a609SVanillan Wang 	  .driver_info = RSVD(4) | RSVD(5) },
23870772a609SVanillan Wang 	{ USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x01a2, 0xff) },			/* Rolling RW101-GL (laptop MBIM) */
23880772a609SVanillan Wang 	{ USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x01a3, 0xff) },			/* Rolling RW101-GL (laptop MBIM) */
23890772a609SVanillan Wang 	{ USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x01a4, 0xff),			/* Rolling RW101-GL (laptop MBIM) */
23900772a609SVanillan Wang 	  .driver_info = RSVD(4) },
23910772a609SVanillan Wang 	{ USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x0115, 0xff),			/* Rolling RW135-GL (laptop MBIM) */
23920772a609SVanillan Wang 	  .driver_info = RSVD(5) },
239351175118SVanillan Wang 	{ USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x0802, 0xff),			/* Rolling RW350-GL (laptop MBIM) */
239451175118SVanillan Wang 	  .driver_info = RSVD(5) },
23958ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0100, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WWD for Global */
23968ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0100, 0xff, 0x00, 0x40) },
23978ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0100, 0xff, 0xff, 0x40) },
23988ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0101, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WRD for Global SKU */
23998ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0101, 0xff, 0x00, 0x40) },
24008ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0101, 0xff, 0xff, 0x40) },
24018ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0106, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WRD for China SKU */
24028ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0106, 0xff, 0x00, 0x40) },
24038ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0106, 0xff, 0xff, 0x40) },
24048ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0111, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WWD for SA */
24058ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0111, 0xff, 0x00, 0x40) },
24068ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0111, 0xff, 0xff, 0x40) },
24078ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0112, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WWD for EU */
24088ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0112, 0xff, 0x00, 0x40) },
24098ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0112, 0xff, 0xff, 0x40) },
24108ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0113, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WWD for NA */
24118ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0113, 0xff, 0x00, 0x40) },
24128ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0113, 0xff, 0xff, 0x40) },
24138ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0115, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WWD for China EDU */
24148ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0115, 0xff, 0x00, 0x40) },
24158ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0115, 0xff, 0xff, 0x40) },
24168ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0116, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WWD for Golbal EDU */
24178ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0116, 0xff, 0x00, 0x40) },
24188ee097aeSMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x0116, 0xff, 0xff, 0x40) },
2419996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010a, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WRD for WWAN Ready */
2420996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010a, 0xff, 0x00, 0x40) },
2421996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010a, 0xff, 0xff, 0x40) },
2422996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010b, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WWD for WWAN Ready */
2423996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010b, 0xff, 0x00, 0x40) },
2424996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010b, 0xff, 0xff, 0x40) },
2425996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010c, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WRD for WWAN Ready */
2426996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010c, 0xff, 0x00, 0x40) },
2427996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010c, 0xff, 0xff, 0x40) },
2428996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010d, 0xff, 0xff, 0x30) },	/* NetPrisma LCUK54-WWD for WWAN Ready */
2429996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010d, 0xff, 0x00, 0x40) },
2430996c88c8SMank Wang 	{ USB_DEVICE_AND_INTERFACE_INFO(0x3731, 0x010d, 0xff, 0xff, 0x40) },
24318d5fc280SYan Xinyu 	{ USB_DEVICE_AND_INTERFACE_INFO(OPPO_VENDOR_ID, OPPO_PRODUCT_R11, 0xff, 0xff, 0x30) },
2432df3414b0SBenoît Monin 	{ USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x30) },
2433064f6e2bSBenoît Monin 	{ USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x40) },
2434df3414b0SBenoît Monin 	{ USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0, 0) },
2435a095edfcSArınç ÜNAL 	{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) },
24362beaa03eSAsuna Yang 	{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) },
243727921a57SDaniel Swanemar 	{ USB_DEVICE_INTERFACE_CLASS(0x1bbb, 0x0530, 0xff),			/* TCL IK512 MBIM */
243827921a57SDaniel Swanemar 	  .driver_info = NCTRL(1) },
243927921a57SDaniel Swanemar 	{ USB_DEVICE_INTERFACE_CLASS(0x1bbb, 0x0640, 0xff),			/* TCL IK512 ECM */
244027921a57SDaniel Swanemar 	  .driver_info = NCTRL(3) },
24418166f38cSMichal Hrusecky 	{ USB_DEVICE_INTERFACE_CLASS(0x2949, 0x8700, 0xff) },			/* Neoway N723-EA */
244214f76cc7SMatthias Urlichs 	{ } /* Terminating entry */
244314f76cc7SMatthias Urlichs };
244458cfe911SMatthias Urlichs MODULE_DEVICE_TABLE(usb, option_ids);
244558cfe911SMatthias Urlichs 
2446c30fe7f7SUwe Zeisberger /* The card has three separate interfaces, which the serial driver
244758cfe911SMatthias Urlichs  * recognizes separately, thus num_port=1.
244858cfe911SMatthias Urlichs  */
244914f76cc7SMatthias Urlichs 
245014f76cc7SMatthias Urlichs static struct usb_serial_driver option_1port_device = {
245114f76cc7SMatthias Urlichs 	.driver = {
245214f76cc7SMatthias Urlichs 		.owner =	THIS_MODULE,
245302b2ac5bSMatthias Urlichs 		.name =		"option1",
245414f76cc7SMatthias Urlichs 	},
245514f76cc7SMatthias Urlichs 	.description       = "GSM modem (1-port)",
2456b656b2cbSGreg Kroah-Hartman 	.id_table          = option_ids,
245714f76cc7SMatthias Urlichs 	.num_ports         = 1,
2458c5be1b52SPascal Terjan 	.probe             = option_probe,
24598b4c6a3aSMatthew Garrett 	.open              = usb_wwan_open,
24608b4c6a3aSMatthew Garrett 	.close             = usb_wwan_close,
24618b4c6a3aSMatthew Garrett 	.dtr_rts	   = usb_wwan_dtr_rts,
24628b4c6a3aSMatthew Garrett 	.write             = usb_wwan_write,
24638b4c6a3aSMatthew Garrett 	.write_room        = usb_wwan_write_room,
24648b4c6a3aSMatthew Garrett 	.chars_in_buffer   = usb_wwan_chars_in_buffer,
24658b4c6a3aSMatthew Garrett 	.tiocmget          = usb_wwan_tiocmget,
24668b4c6a3aSMatthew Garrett 	.tiocmset          = usb_wwan_tiocmset,
2467c2dd4a8eSJohan Hovold 	.attach            = option_attach,
iface_is_reserved(unsigned long device_flags,u8 ifnum)2468b9c3aab3SJohan Hovold 	.release           = option_release,
2469b8f0e820SJohan Hovold 	.port_probe        = usb_wwan_port_probe,
2470a1028f0aSBjørn Mork 	.port_remove	   = usb_wwan_port_remove,
247158cfe911SMatthias Urlichs 	.read_int_callback = option_instat_callback,
24725f4fab91SOliver Neukum #ifdef CONFIG_PM
24738b4c6a3aSMatthew Garrett 	.suspend           = usb_wwan_suspend,
24748b4c6a3aSMatthew Garrett 	.resume            = usb_wwan_resume,
24755f4fab91SOliver Neukum #endif
247658cfe911SMatthias Urlichs };
247758cfe911SMatthias Urlichs 
2478f667ddadSAlan Stern static struct usb_serial_driver * const serial_drivers[] = {
2479f667ddadSAlan Stern 	&option_1port_device, NULL
2480f667ddadSAlan Stern };
2481f667ddadSAlan Stern 
248268e24113SGreg Kroah-Hartman module_usb_serial_driver(serial_drivers, option_ids);
248358cfe911SMatthias Urlichs 
2484a251963fSJohan Hovold static bool iface_is_reserved(unsigned long device_flags, u8 ifnum)
2485a251963fSJohan Hovold {
2486a251963fSJohan Hovold 	if (ifnum > FLAG_IFNUM_MAX)
2487a251963fSJohan Hovold 		return false;
2488a251963fSJohan Hovold 
2489a251963fSJohan Hovold 	return device_flags & RSVD(ifnum);
2490a251963fSJohan Hovold }
2491a251963fSJohan Hovold 
24920d905fd5SDan Williams static int option_probe(struct usb_serial *serial,
24930d905fd5SDan Williams 			const struct usb_device_id *id)
24940d905fd5SDan Williams {
2495378fac2aSJohan Hovold 	struct usb_interface_descriptor *iface_desc =
2496378fac2aSJohan Hovold 				&serial->interface->cur_altsetting->desc;
2497c3a65808SJohan Hovold 	unsigned long device_flags = id->driver_info;
24980d905fd5SDan Williams 
24991b95bee5SBjørn Mork 	/* Never bind to the CD-Rom emulation interface	*/
25009b284d8eSJohan Hovold 	if (iface_desc->bInterfaceClass == USB_CLASS_MASS_STORAGE)
25010d905fd5SDan Williams 		return -ENODEV;
25020d905fd5SDan Williams 
2503378fac2aSJohan Hovold 	/*
2504378fac2aSJohan Hovold 	 * Don't bind reserved interfaces (like network ones) which often have
25050d905fd5SDan Williams 	 * the same class/subclass/protocol as the serial interfaces.  Look at
25060d905fd5SDan Williams 	 * the Windows driver .INF files for reserved interface numbers.
25070d905fd5SDan Williams 	 */
iface_no_modem_control(unsigned long device_flags,u8 ifnum)2508a251963fSJohan Hovold 	if (iface_is_reserved(device_flags, iface_desc->bInterfaceNumber))
2509963940cfSBjørn Mork 		return -ENODEV;
25100d905fd5SDan Williams 
251136cae568SKristian Evensen 	/*
251235aecc02SJohan Hovold 	 * Allow matching on bNumEndpoints for devices whose interface numbers
251335aecc02SJohan Hovold 	 * can change (e.g. Quectel EP06).
251436cae568SKristian Evensen 	 */
251535aecc02SJohan Hovold 	if (device_flags & NUMEP2 && iface_desc->bNumEndpoints != 2)
option_attach(struct usb_serial * serial)251636cae568SKristian Evensen 		return -ENODEV;
251736cae568SKristian Evensen 
2518c3a65808SJohan Hovold 	/* Store the device flags so we can use them during attach. */
2519c3a65808SJohan Hovold 	usb_set_serial_data(serial, (void *)device_flags);
2520c2dd4a8eSJohan Hovold 
2521c2dd4a8eSJohan Hovold 	return 0;
2522c2dd4a8eSJohan Hovold }
2523c2dd4a8eSJohan Hovold 
2524a251963fSJohan Hovold static bool iface_no_modem_control(unsigned long device_flags, u8 ifnum)
2525a251963fSJohan Hovold {
2526a251963fSJohan Hovold 	if (ifnum > FLAG_IFNUM_MAX)
2527a251963fSJohan Hovold 		return false;
2528a251963fSJohan Hovold 
2529a251963fSJohan Hovold 	return device_flags & NCTRL(ifnum);
2530a251963fSJohan Hovold }
2531a251963fSJohan Hovold 
2532c2dd4a8eSJohan Hovold static int option_attach(struct usb_serial *serial)
2533c2dd4a8eSJohan Hovold {
2534c2dd4a8eSJohan Hovold 	struct usb_interface_descriptor *iface_desc;
2535c2dd4a8eSJohan Hovold 	struct usb_wwan_intf_private *data;
2536c3a65808SJohan Hovold 	unsigned long device_flags;
2537c2dd4a8eSJohan Hovold 
2538a276400dSJohan Hovold 	data = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);
25390d905fd5SDan Williams 	if (!data)
25400d905fd5SDan Williams 		return -ENOMEM;
2541e463c6ddSJohan Hovold 
2542c3a65808SJohan Hovold 	/* Retrieve device flags stored at probe. */
2543c3a65808SJohan Hovold 	device_flags = (unsigned long)usb_get_serial_data(serial);
option_release(struct usb_serial * serial)254446dc0fc4SJohan Hovold 
2545c2dd4a8eSJohan Hovold 	iface_desc = &serial->interface->cur_altsetting->desc;
2546c2dd4a8eSJohan Hovold 
2547a251963fSJohan Hovold 	if (!iface_no_modem_control(device_flags, iface_desc->bInterfaceNumber))
2548669e729fSDavid Ward 		data->use_send_setup = 1;
2549c3a65808SJohan Hovold 
25502438c3a1SDaniele Palmas 	if (device_flags & ZLP)
option_instat_callback(struct urb * urb)25512438c3a1SDaniele Palmas 		data->use_zlp = 1;
25522438c3a1SDaniele Palmas 
25530d905fd5SDan Williams 	spin_lock_init(&data->susp_lock);
2554a276400dSJohan Hovold 
2555a276400dSJohan Hovold 	usb_set_serial_data(serial, data);
2556a276400dSJohan Hovold 
25570d905fd5SDan Williams 	return 0;
25580d905fd5SDan Williams }
25590d905fd5SDan Williams 
2560b9c3aab3SJohan Hovold static void option_release(struct usb_serial *serial)
2561b9c3aab3SJohan Hovold {
2562e463c6ddSJohan Hovold 	struct usb_wwan_intf_private *intfdata = usb_get_serial_data(serial);
2563b9c3aab3SJohan Hovold 
2564e463c6ddSJohan Hovold 	kfree(intfdata);
2565b9c3aab3SJohan Hovold }
2566b9c3aab3SJohan Hovold 
25677d12e780SDavid Howells static void option_instat_callback(struct urb *urb)
256858cfe911SMatthias Urlichs {
256958cfe911SMatthias Urlichs 	int err;
2570d6977b51SGreg Kroah-Hartman 	int status = urb->status;
2571cdc97792SMing Lei 	struct usb_serial_port *port = urb->context;
25720e00609dSGreg Kroah-Hartman 	struct device *dev = &port->dev;
25734273f987SJohan Hovold 	struct usb_wwan_port_private *portdata =
25744273f987SJohan Hovold 					usb_get_serial_port_data(port);
257558cfe911SMatthias Urlichs 
25760e00609dSGreg Kroah-Hartman 	dev_dbg(dev, "%s: urb %p port %p has data %p\n", __func__, urb, port, portdata);
257758cfe911SMatthias Urlichs 
2578d6977b51SGreg Kroah-Hartman 	if (status == 0) {
2579eb0c68eaSJohan Hovold 		struct usb_ctrlrequest *req_pkt = urb->transfer_buffer;
258058cfe911SMatthias Urlichs 
258158cfe911SMatthias Urlichs 		if (!req_pkt) {
25820e00609dSGreg Kroah-Hartman 			dev_dbg(dev, "%s: NULL req_pkt\n", __func__);
258358cfe911SMatthias Urlichs 			return;
258458cfe911SMatthias Urlichs 		}
25857bb75aeeSAndrew Morton 		if ((req_pkt->bRequestType == 0xA1) &&
25867bb75aeeSAndrew Morton 				(req_pkt->bRequest == 0x20)) {
258758cfe911SMatthias Urlichs 			int old_dcd_state;
258858cfe911SMatthias Urlichs 			unsigned char signals = *((unsigned char *)
25897bb75aeeSAndrew Morton 					urb->transfer_buffer +
25907bb75aeeSAndrew Morton 					sizeof(struct usb_ctrlrequest));
259158cfe911SMatthias Urlichs 
25920e00609dSGreg Kroah-Hartman 			dev_dbg(dev, "%s: signal x%x\n", __func__, signals);
259358cfe911SMatthias Urlichs 
259458cfe911SMatthias Urlichs 			old_dcd_state = portdata->dcd_state;
259558cfe911SMatthias Urlichs 			portdata->cts_state = 1;
259658cfe911SMatthias Urlichs 			portdata->dcd_state = ((signals & 0x01) ? 1 : 0);
259758cfe911SMatthias Urlichs 			portdata->dsr_state = ((signals & 0x02) ? 1 : 0);
259858cfe911SMatthias Urlichs 			portdata->ri_state = ((signals & 0x08) ? 1 : 0);
259958cfe911SMatthias Urlichs 
2600aa27a094SJiri Slaby 			if (old_dcd_state && !portdata->dcd_state)
2601aa27a094SJiri Slaby 				tty_port_tty_hangup(&port->port, true);
26027bb75aeeSAndrew Morton 		} else {
26030e00609dSGreg Kroah-Hartman 			dev_dbg(dev, "%s: type %x req %x\n", __func__,
26047bb75aeeSAndrew Morton 				req_pkt->bRequestType, req_pkt->bRequest);
260558cfe911SMatthias Urlichs 		}
2606f0e4cba2SJohan Hovold 	} else if (status == -ENOENT || status == -ESHUTDOWN) {
2607f0e4cba2SJohan Hovold 		dev_dbg(dev, "%s: urb stopped: %d\n", __func__, status);
260858cfe911SMatthias Urlichs 	} else
26099257f1daSJohan Hovold 		dev_dbg(dev, "%s: error %d\n", __func__, status);
261058cfe911SMatthias Urlichs 
261158cfe911SMatthias Urlichs 	/* Resubmit urb so we continue receiving IRQ data */
26124901b2c3SOliver Neukum 	if (status != -ESHUTDOWN && status != -ENOENT) {
2613496969c6SJohan Hovold 		usb_mark_last_busy(port->serial->dev);
261458cfe911SMatthias Urlichs 		err = usb_submit_urb(urb, GFP_ATOMIC);
261558cfe911SMatthias Urlichs 		if (err)
26160e00609dSGreg Kroah-Hartman 			dev_dbg(dev, "%s: resubmit intr urb failed. (%d)\n",
2617441b62c1SHarvey Harrison 				__func__, err);
261858cfe911SMatthias Urlichs 	}
261958cfe911SMatthias Urlichs }
262058cfe911SMatthias Urlichs 
262158cfe911SMatthias Urlichs MODULE_AUTHOR(DRIVER_AUTHOR);
262258cfe911SMatthias Urlichs MODULE_DESCRIPTION(DRIVER_DESC);
2623627cfa89SJohan Hovold MODULE_LICENSE("GPL v2");
2624