1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun USB Driver for GSM modems
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun Copyright (C) 2005 Matthias Urlichs <smurf@smurf.noris.de>
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun Portions copied from the Keyspan driver by Hugh Blemings <hugh@blemings.org>
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun History: see the git log.
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun Work sponsored by: Sigos GmbH, Germany <info@sigos.de>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun This driver exists because the "normal" serial driver doesn't work too well
14*4882a593Smuzhiyun with GSM modems. Issues:
15*4882a593Smuzhiyun - data loss -- one single Receive URB is not nearly enough
16*4882a593Smuzhiyun - nonstandard flow (Option devices) control
17*4882a593Smuzhiyun - controlling the baud rate doesn't make sense
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun This driver is named "option" because the most common device it's
20*4882a593Smuzhiyun used for is a PC-Card (with an internal OHCI-USB interface, behind
21*4882a593Smuzhiyun which the GSM interface sits), made by Option Inc.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun Some of the "one port" devices actually exhibit multiple USB instances
24*4882a593Smuzhiyun on the USB bus. This is not a bug, these ports are used for different
25*4882a593Smuzhiyun device features.
26*4882a593Smuzhiyun */
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun #define DRIVER_AUTHOR "Matthias Urlichs <smurf@smurf.noris.de>"
29*4882a593Smuzhiyun #define DRIVER_DESC "USB Driver for GSM modems"
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun #include <linux/kernel.h>
32*4882a593Smuzhiyun #include <linux/jiffies.h>
33*4882a593Smuzhiyun #include <linux/errno.h>
34*4882a593Smuzhiyun #include <linux/tty.h>
35*4882a593Smuzhiyun #include <linux/tty_flip.h>
36*4882a593Smuzhiyun #include <linux/slab.h>
37*4882a593Smuzhiyun #include <linux/module.h>
38*4882a593Smuzhiyun #include <linux/bitops.h>
39*4882a593Smuzhiyun #include <linux/usb.h>
40*4882a593Smuzhiyun #include <linux/usb/serial.h>
41*4882a593Smuzhiyun #include "usb-wwan.h"
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun /* Function prototypes */
44*4882a593Smuzhiyun static int option_probe(struct usb_serial *serial,
45*4882a593Smuzhiyun const struct usb_device_id *id);
46*4882a593Smuzhiyun static int option_attach(struct usb_serial *serial);
47*4882a593Smuzhiyun static void option_release(struct usb_serial *serial);
48*4882a593Smuzhiyun static void option_instat_callback(struct urb *urb);
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun /* Vendor and product IDs */
51*4882a593Smuzhiyun #define OPTION_VENDOR_ID 0x0AF0
52*4882a593Smuzhiyun #define OPTION_PRODUCT_COLT 0x5000
53*4882a593Smuzhiyun #define OPTION_PRODUCT_RICOLA 0x6000
54*4882a593Smuzhiyun #define OPTION_PRODUCT_RICOLA_LIGHT 0x6100
55*4882a593Smuzhiyun #define OPTION_PRODUCT_RICOLA_QUAD 0x6200
56*4882a593Smuzhiyun #define OPTION_PRODUCT_RICOLA_QUAD_LIGHT 0x6300
57*4882a593Smuzhiyun #define OPTION_PRODUCT_RICOLA_NDIS 0x6050
58*4882a593Smuzhiyun #define OPTION_PRODUCT_RICOLA_NDIS_LIGHT 0x6150
59*4882a593Smuzhiyun #define OPTION_PRODUCT_RICOLA_NDIS_QUAD 0x6250
60*4882a593Smuzhiyun #define OPTION_PRODUCT_RICOLA_NDIS_QUAD_LIGHT 0x6350
61*4882a593Smuzhiyun #define OPTION_PRODUCT_COBRA 0x6500
62*4882a593Smuzhiyun #define OPTION_PRODUCT_COBRA_BUS 0x6501
63*4882a593Smuzhiyun #define OPTION_PRODUCT_VIPER 0x6600
64*4882a593Smuzhiyun #define OPTION_PRODUCT_VIPER_BUS 0x6601
65*4882a593Smuzhiyun #define OPTION_PRODUCT_GT_MAX_READY 0x6701
66*4882a593Smuzhiyun #define OPTION_PRODUCT_FUJI_MODEM_LIGHT 0x6721
67*4882a593Smuzhiyun #define OPTION_PRODUCT_FUJI_MODEM_GT 0x6741
68*4882a593Smuzhiyun #define OPTION_PRODUCT_FUJI_MODEM_EX 0x6761
69*4882a593Smuzhiyun #define OPTION_PRODUCT_KOI_MODEM 0x6800
70*4882a593Smuzhiyun #define OPTION_PRODUCT_SCORPION_MODEM 0x6901
71*4882a593Smuzhiyun #define OPTION_PRODUCT_ETNA_MODEM 0x7001
72*4882a593Smuzhiyun #define OPTION_PRODUCT_ETNA_MODEM_LITE 0x7021
73*4882a593Smuzhiyun #define OPTION_PRODUCT_ETNA_MODEM_GT 0x7041
74*4882a593Smuzhiyun #define OPTION_PRODUCT_ETNA_MODEM_EX 0x7061
75*4882a593Smuzhiyun #define OPTION_PRODUCT_ETNA_KOI_MODEM 0x7100
76*4882a593Smuzhiyun #define OPTION_PRODUCT_GTM380_MODEM 0x7201
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun #define HUAWEI_VENDOR_ID 0x12D1
79*4882a593Smuzhiyun #define HUAWEI_PRODUCT_E173 0x140C
80*4882a593Smuzhiyun #define HUAWEI_PRODUCT_E1750 0x1406
81*4882a593Smuzhiyun #define HUAWEI_PRODUCT_K4505 0x1464
82*4882a593Smuzhiyun #define HUAWEI_PRODUCT_K3765 0x1465
83*4882a593Smuzhiyun #define HUAWEI_PRODUCT_K4605 0x14C6
84*4882a593Smuzhiyun #define HUAWEI_PRODUCT_E173S6 0x1C07
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun #define QUANTA_VENDOR_ID 0x0408
87*4882a593Smuzhiyun #define QUANTA_PRODUCT_Q101 0xEA02
88*4882a593Smuzhiyun #define QUANTA_PRODUCT_Q111 0xEA03
89*4882a593Smuzhiyun #define QUANTA_PRODUCT_GLX 0xEA04
90*4882a593Smuzhiyun #define QUANTA_PRODUCT_GKE 0xEA05
91*4882a593Smuzhiyun #define QUANTA_PRODUCT_GLE 0xEA06
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun #define NOVATELWIRELESS_VENDOR_ID 0x1410
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun /* YISO PRODUCTS */
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun #define YISO_VENDOR_ID 0x0EAB
98*4882a593Smuzhiyun #define YISO_PRODUCT_U893 0xC893
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun /*
101*4882a593Smuzhiyun * NOVATEL WIRELESS PRODUCTS
102*4882a593Smuzhiyun *
103*4882a593Smuzhiyun * Note from Novatel Wireless:
104*4882a593Smuzhiyun * If your Novatel modem does not work on linux, don't
105*4882a593Smuzhiyun * change the option module, but check our website. If
106*4882a593Smuzhiyun * that does not help, contact ddeschepper@nvtl.com
107*4882a593Smuzhiyun */
108*4882a593Smuzhiyun /* MERLIN EVDO PRODUCTS */
109*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_V640 0x1100
110*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_V620 0x1110
111*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_V740 0x1120
112*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_V720 0x1130
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun /* MERLIN HSDPA/HSPA PRODUCTS */
115*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_U730 0x1400
116*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_U740 0x1410
117*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_U870 0x1420
118*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_XU870 0x1430
119*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_X950D 0x1450
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun /* EXPEDITE PRODUCTS */
122*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_EV620 0x2100
123*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_ES720 0x2110
124*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_E725 0x2120
125*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_ES620 0x2130
126*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_EU730 0x2400
127*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_EU740 0x2410
128*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_EU870D 0x2420
129*4882a593Smuzhiyun /* OVATION PRODUCTS */
130*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_MC727 0x4100
131*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_MC950D 0x4400
132*4882a593Smuzhiyun /*
133*4882a593Smuzhiyun * Note from Novatel Wireless:
134*4882a593Smuzhiyun * All PID in the 5xxx range are currently reserved for
135*4882a593Smuzhiyun * auto-install CDROMs, and should not be added to this
136*4882a593Smuzhiyun * module.
137*4882a593Smuzhiyun *
138*4882a593Smuzhiyun * #define NOVATELWIRELESS_PRODUCT_U727 0x5010
139*4882a593Smuzhiyun * #define NOVATELWIRELESS_PRODUCT_MC727_NEW 0x5100
140*4882a593Smuzhiyun */
141*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_OVMC760 0x6002
142*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_MC780 0x6010
143*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED 0x6000
144*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED 0x6001
145*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED 0x7000
146*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED 0x7001
147*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED3 0x7003
148*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED4 0x7004
149*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED5 0x7005
150*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED6 0x7006
151*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED7 0x7007
152*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_MC996D 0x7030
153*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_MF3470 0x7041
154*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_MC547 0x7042
155*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED 0x8000
156*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED 0x8001
157*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED 0x9000
158*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED 0x9001
159*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_E362 0x9010
160*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_E371 0x9011
161*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_U620L 0x9022
162*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_G2 0xA010
163*4882a593Smuzhiyun #define NOVATELWIRELESS_PRODUCT_MC551 0xB001
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun #define UBLOX_VENDOR_ID 0x1546
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun /* AMOI PRODUCTS */
168*4882a593Smuzhiyun #define AMOI_VENDOR_ID 0x1614
169*4882a593Smuzhiyun #define AMOI_PRODUCT_H01 0x0800
170*4882a593Smuzhiyun #define AMOI_PRODUCT_H01A 0x7002
171*4882a593Smuzhiyun #define AMOI_PRODUCT_H02 0x0802
172*4882a593Smuzhiyun #define AMOI_PRODUCT_SKYPEPHONE_S2 0x0407
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun #define DELL_VENDOR_ID 0x413C
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun /* Dell modems */
177*4882a593Smuzhiyun #define DELL_PRODUCT_5700_MINICARD 0x8114
178*4882a593Smuzhiyun #define DELL_PRODUCT_5500_MINICARD 0x8115
179*4882a593Smuzhiyun #define DELL_PRODUCT_5505_MINICARD 0x8116
180*4882a593Smuzhiyun #define DELL_PRODUCT_5700_EXPRESSCARD 0x8117
181*4882a593Smuzhiyun #define DELL_PRODUCT_5510_EXPRESSCARD 0x8118
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun #define DELL_PRODUCT_5700_MINICARD_SPRINT 0x8128
184*4882a593Smuzhiyun #define DELL_PRODUCT_5700_MINICARD_TELUS 0x8129
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun #define DELL_PRODUCT_5720_MINICARD_VZW 0x8133
187*4882a593Smuzhiyun #define DELL_PRODUCT_5720_MINICARD_SPRINT 0x8134
188*4882a593Smuzhiyun #define DELL_PRODUCT_5720_MINICARD_TELUS 0x8135
189*4882a593Smuzhiyun #define DELL_PRODUCT_5520_MINICARD_CINGULAR 0x8136
190*4882a593Smuzhiyun #define DELL_PRODUCT_5520_MINICARD_GENERIC_L 0x8137
191*4882a593Smuzhiyun #define DELL_PRODUCT_5520_MINICARD_GENERIC_I 0x8138
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun #define DELL_PRODUCT_5730_MINICARD_SPRINT 0x8180
194*4882a593Smuzhiyun #define DELL_PRODUCT_5730_MINICARD_TELUS 0x8181
195*4882a593Smuzhiyun #define DELL_PRODUCT_5730_MINICARD_VZW 0x8182
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun #define DELL_PRODUCT_5800_MINICARD_VZW 0x8195 /* Novatel E362 */
198*4882a593Smuzhiyun #define DELL_PRODUCT_5800_V2_MINICARD_VZW 0x8196 /* Novatel E362 */
199*4882a593Smuzhiyun #define DELL_PRODUCT_5804_MINICARD_ATT 0x819b /* Novatel E371 */
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun #define DELL_PRODUCT_5821E 0x81d7
202*4882a593Smuzhiyun #define DELL_PRODUCT_5821E_ESIM 0x81e0
203*4882a593Smuzhiyun #define DELL_PRODUCT_5829E_ESIM 0x81e4
204*4882a593Smuzhiyun #define DELL_PRODUCT_5829E 0x81e6
205*4882a593Smuzhiyun
206*4882a593Smuzhiyun #define KYOCERA_VENDOR_ID 0x0c88
207*4882a593Smuzhiyun #define KYOCERA_PRODUCT_KPC650 0x17da
208*4882a593Smuzhiyun #define KYOCERA_PRODUCT_KPC680 0x180a
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun #define ANYDATA_VENDOR_ID 0x16d5
211*4882a593Smuzhiyun #define ANYDATA_PRODUCT_ADU_620UW 0x6202
212*4882a593Smuzhiyun #define ANYDATA_PRODUCT_ADU_E100A 0x6501
213*4882a593Smuzhiyun #define ANYDATA_PRODUCT_ADU_500A 0x6502
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun #define AXESSTEL_VENDOR_ID 0x1726
216*4882a593Smuzhiyun #define AXESSTEL_PRODUCT_MV110H 0x1000
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun #define BANDRICH_VENDOR_ID 0x1A8D
219*4882a593Smuzhiyun #define BANDRICH_PRODUCT_C100_1 0x1002
220*4882a593Smuzhiyun #define BANDRICH_PRODUCT_C100_2 0x1003
221*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1004 0x1004
222*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1005 0x1005
223*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1006 0x1006
224*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1007 0x1007
225*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1008 0x1008
226*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1009 0x1009
227*4882a593Smuzhiyun #define BANDRICH_PRODUCT_100A 0x100a
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun #define BANDRICH_PRODUCT_100B 0x100b
230*4882a593Smuzhiyun #define BANDRICH_PRODUCT_100C 0x100c
231*4882a593Smuzhiyun #define BANDRICH_PRODUCT_100D 0x100d
232*4882a593Smuzhiyun #define BANDRICH_PRODUCT_100E 0x100e
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun #define BANDRICH_PRODUCT_100F 0x100f
235*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1010 0x1010
236*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1011 0x1011
237*4882a593Smuzhiyun #define BANDRICH_PRODUCT_1012 0x1012
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun #define QUALCOMM_VENDOR_ID 0x05C6
240*4882a593Smuzhiyun /* These Quectel products use Qualcomm's vendor ID */
241*4882a593Smuzhiyun #define QUECTEL_PRODUCT_UC20 0x9003
242*4882a593Smuzhiyun #define QUECTEL_PRODUCT_UC15 0x9090
243*4882a593Smuzhiyun /* These u-blox products use Qualcomm's vendor ID */
244*4882a593Smuzhiyun #define UBLOX_PRODUCT_R410M 0x90b2
245*4882a593Smuzhiyun /* These Yuga products use Qualcomm's vendor ID */
246*4882a593Smuzhiyun #define YUGA_PRODUCT_CLM920_NC5 0x9625
247*4882a593Smuzhiyun
248*4882a593Smuzhiyun #define QUECTEL_VENDOR_ID 0x2c7c
249*4882a593Smuzhiyun /* These Quectel products use Quectel's vendor ID */
250*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EC21 0x0121
251*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EC25 0x0125
252*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EG91 0x0191
253*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EG95 0x0195
254*4882a593Smuzhiyun #define QUECTEL_PRODUCT_BG96 0x0296
255*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EP06 0x0306
256*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EM05G 0x030a
257*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EM060K 0x030b
258*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EM05G_SG 0x0311
259*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EM12 0x0512
260*4882a593Smuzhiyun #define QUECTEL_PRODUCT_RM500Q 0x0800
261*4882a593Smuzhiyun #define QUECTEL_PRODUCT_RM520N 0x0801
262*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EC200S_CN 0x6002
263*4882a593Smuzhiyun #define QUECTEL_PRODUCT_EC200T 0x6026
264*4882a593Smuzhiyun #define QUECTEL_PRODUCT_RM500K 0x7001
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun #define CMOTECH_VENDOR_ID 0x16d8
267*4882a593Smuzhiyun #define CMOTECH_PRODUCT_6001 0x6001
268*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CMU_300 0x6002
269*4882a593Smuzhiyun #define CMOTECH_PRODUCT_6003 0x6003
270*4882a593Smuzhiyun #define CMOTECH_PRODUCT_6004 0x6004
271*4882a593Smuzhiyun #define CMOTECH_PRODUCT_6005 0x6005
272*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CGU_628A 0x6006
273*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CHE_628S 0x6007
274*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CMU_301 0x6008
275*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CHU_628 0x6280
276*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CHU_628S 0x6281
277*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CDU_680 0x6803
278*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CDU_685A 0x6804
279*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CHU_720S 0x7001
280*4882a593Smuzhiyun #define CMOTECH_PRODUCT_7002 0x7002
281*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CHU_629K 0x7003
282*4882a593Smuzhiyun #define CMOTECH_PRODUCT_7004 0x7004
283*4882a593Smuzhiyun #define CMOTECH_PRODUCT_7005 0x7005
284*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CGU_629 0x7006
285*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CHU_629S 0x700a
286*4882a593Smuzhiyun #define CMOTECH_PRODUCT_CHU_720I 0x7211
287*4882a593Smuzhiyun #define CMOTECH_PRODUCT_7212 0x7212
288*4882a593Smuzhiyun #define CMOTECH_PRODUCT_7213 0x7213
289*4882a593Smuzhiyun #define CMOTECH_PRODUCT_7251 0x7251
290*4882a593Smuzhiyun #define CMOTECH_PRODUCT_7252 0x7252
291*4882a593Smuzhiyun #define CMOTECH_PRODUCT_7253 0x7253
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun #define TELIT_VENDOR_ID 0x1bc7
294*4882a593Smuzhiyun #define TELIT_PRODUCT_UC864E 0x1003
295*4882a593Smuzhiyun #define TELIT_PRODUCT_UC864G 0x1004
296*4882a593Smuzhiyun #define TELIT_PRODUCT_CC864_DUAL 0x1005
297*4882a593Smuzhiyun #define TELIT_PRODUCT_CC864_SINGLE 0x1006
298*4882a593Smuzhiyun #define TELIT_PRODUCT_DE910_DUAL 0x1010
299*4882a593Smuzhiyun #define TELIT_PRODUCT_UE910_V2 0x1012
300*4882a593Smuzhiyun #define TELIT_PRODUCT_LE922_USBCFG1 0x1040
301*4882a593Smuzhiyun #define TELIT_PRODUCT_LE922_USBCFG2 0x1041
302*4882a593Smuzhiyun #define TELIT_PRODUCT_LE922_USBCFG0 0x1042
303*4882a593Smuzhiyun #define TELIT_PRODUCT_LE922_USBCFG3 0x1043
304*4882a593Smuzhiyun #define TELIT_PRODUCT_LE922_USBCFG5 0x1045
305*4882a593Smuzhiyun #define TELIT_PRODUCT_ME910 0x1100
306*4882a593Smuzhiyun #define TELIT_PRODUCT_ME910_DUAL_MODEM 0x1101
307*4882a593Smuzhiyun #define TELIT_PRODUCT_LE920 0x1200
308*4882a593Smuzhiyun #define TELIT_PRODUCT_LE910 0x1201
309*4882a593Smuzhiyun #define TELIT_PRODUCT_LE910_USBCFG4 0x1206
310*4882a593Smuzhiyun #define TELIT_PRODUCT_LE920A4_1207 0x1207
311*4882a593Smuzhiyun #define TELIT_PRODUCT_LE920A4_1208 0x1208
312*4882a593Smuzhiyun #define TELIT_PRODUCT_LE920A4_1211 0x1211
313*4882a593Smuzhiyun #define TELIT_PRODUCT_LE920A4_1212 0x1212
314*4882a593Smuzhiyun #define TELIT_PRODUCT_LE920A4_1213 0x1213
315*4882a593Smuzhiyun #define TELIT_PRODUCT_LE920A4_1214 0x1214
316*4882a593Smuzhiyun
317*4882a593Smuzhiyun /* ZTE PRODUCTS */
318*4882a593Smuzhiyun #define ZTE_VENDOR_ID 0x19d2
319*4882a593Smuzhiyun #define ZTE_PRODUCT_MF622 0x0001
320*4882a593Smuzhiyun #define ZTE_PRODUCT_MF628 0x0015
321*4882a593Smuzhiyun #define ZTE_PRODUCT_MF626 0x0031
322*4882a593Smuzhiyun #define ZTE_PRODUCT_ZM8620_X 0x0396
323*4882a593Smuzhiyun #define ZTE_PRODUCT_ME3620_MBIM 0x0426
324*4882a593Smuzhiyun #define ZTE_PRODUCT_ME3620_X 0x1432
325*4882a593Smuzhiyun #define ZTE_PRODUCT_ME3620_L 0x1433
326*4882a593Smuzhiyun #define ZTE_PRODUCT_AC2726 0xfff1
327*4882a593Smuzhiyun #define ZTE_PRODUCT_MG880 0xfffd
328*4882a593Smuzhiyun #define ZTE_PRODUCT_CDMA_TECH 0xfffe
329*4882a593Smuzhiyun #define ZTE_PRODUCT_AC8710T 0xffff
330*4882a593Smuzhiyun #define ZTE_PRODUCT_MC2718 0xffe8
331*4882a593Smuzhiyun #define ZTE_PRODUCT_AD3812 0xffeb
332*4882a593Smuzhiyun #define ZTE_PRODUCT_MC2716 0xffed
333*4882a593Smuzhiyun
334*4882a593Smuzhiyun #define BENQ_VENDOR_ID 0x04a5
335*4882a593Smuzhiyun #define BENQ_PRODUCT_H10 0x4068
336*4882a593Smuzhiyun
337*4882a593Smuzhiyun #define DLINK_VENDOR_ID 0x1186
338*4882a593Smuzhiyun #define DLINK_PRODUCT_DWM_652 0x3e04
339*4882a593Smuzhiyun #define DLINK_PRODUCT_DWM_652_U5 0xce16
340*4882a593Smuzhiyun #define DLINK_PRODUCT_DWM_652_U5A 0xce1e
341*4882a593Smuzhiyun
342*4882a593Smuzhiyun #define QISDA_VENDOR_ID 0x1da5
343*4882a593Smuzhiyun #define QISDA_PRODUCT_H21_4512 0x4512
344*4882a593Smuzhiyun #define QISDA_PRODUCT_H21_4523 0x4523
345*4882a593Smuzhiyun #define QISDA_PRODUCT_H20_4515 0x4515
346*4882a593Smuzhiyun #define QISDA_PRODUCT_H20_4518 0x4518
347*4882a593Smuzhiyun #define QISDA_PRODUCT_H20_4519 0x4519
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun /* TLAYTECH PRODUCTS */
350*4882a593Smuzhiyun #define TLAYTECH_VENDOR_ID 0x20B9
351*4882a593Smuzhiyun #define TLAYTECH_PRODUCT_TEU800 0x1682
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun /* TOSHIBA PRODUCTS */
354*4882a593Smuzhiyun #define TOSHIBA_VENDOR_ID 0x0930
355*4882a593Smuzhiyun #define TOSHIBA_PRODUCT_HSDPA_MINICARD 0x1302
356*4882a593Smuzhiyun #define TOSHIBA_PRODUCT_G450 0x0d45
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun #define ALINK_VENDOR_ID 0x1e0e
359*4882a593Smuzhiyun #define SIMCOM_PRODUCT_SIM7100E 0x9001 /* Yes, ALINK_VENDOR_ID */
360*4882a593Smuzhiyun #define ALINK_PRODUCT_PH300 0x9100
361*4882a593Smuzhiyun #define ALINK_PRODUCT_3GU 0x9200
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun /* ALCATEL PRODUCTS */
364*4882a593Smuzhiyun #define ALCATEL_VENDOR_ID 0x1bbb
365*4882a593Smuzhiyun #define ALCATEL_PRODUCT_X060S_X200 0x0000
366*4882a593Smuzhiyun #define ALCATEL_PRODUCT_X220_X500D 0x0017
367*4882a593Smuzhiyun #define ALCATEL_PRODUCT_L100V 0x011e
368*4882a593Smuzhiyun #define ALCATEL_PRODUCT_L800MA 0x0203
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun #define PIRELLI_VENDOR_ID 0x1266
371*4882a593Smuzhiyun #define PIRELLI_PRODUCT_C100_1 0x1002
372*4882a593Smuzhiyun #define PIRELLI_PRODUCT_C100_2 0x1003
373*4882a593Smuzhiyun #define PIRELLI_PRODUCT_1004 0x1004
374*4882a593Smuzhiyun #define PIRELLI_PRODUCT_1005 0x1005
375*4882a593Smuzhiyun #define PIRELLI_PRODUCT_1006 0x1006
376*4882a593Smuzhiyun #define PIRELLI_PRODUCT_1007 0x1007
377*4882a593Smuzhiyun #define PIRELLI_PRODUCT_1008 0x1008
378*4882a593Smuzhiyun #define PIRELLI_PRODUCT_1009 0x1009
379*4882a593Smuzhiyun #define PIRELLI_PRODUCT_100A 0x100a
380*4882a593Smuzhiyun #define PIRELLI_PRODUCT_100B 0x100b
381*4882a593Smuzhiyun #define PIRELLI_PRODUCT_100C 0x100c
382*4882a593Smuzhiyun #define PIRELLI_PRODUCT_100D 0x100d
383*4882a593Smuzhiyun #define PIRELLI_PRODUCT_100E 0x100e
384*4882a593Smuzhiyun #define PIRELLI_PRODUCT_100F 0x100f
385*4882a593Smuzhiyun #define PIRELLI_PRODUCT_1011 0x1011
386*4882a593Smuzhiyun #define PIRELLI_PRODUCT_1012 0x1012
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun /* Airplus products */
389*4882a593Smuzhiyun #define AIRPLUS_VENDOR_ID 0x1011
390*4882a593Smuzhiyun #define AIRPLUS_PRODUCT_MCD650 0x3198
391*4882a593Smuzhiyun
392*4882a593Smuzhiyun /* Longcheer/Longsung vendor ID; makes whitelabel devices that
393*4882a593Smuzhiyun * many other vendors like 4G Systems, Alcatel, ChinaBird,
394*4882a593Smuzhiyun * Mobidata, etc sell under their own brand names.
395*4882a593Smuzhiyun */
396*4882a593Smuzhiyun #define LONGCHEER_VENDOR_ID 0x1c9e
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun /* 4G Systems products */
399*4882a593Smuzhiyun /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
400*4882a593Smuzhiyun * It seems to contain a Qualcomm QSC6240/6290 chipset */
401*4882a593Smuzhiyun #define FOUR_G_SYSTEMS_PRODUCT_W14 0x9603
402*4882a593Smuzhiyun #define FOUR_G_SYSTEMS_PRODUCT_W100 0x9b01
403*4882a593Smuzhiyun
404*4882a593Smuzhiyun /* Fujisoft products */
405*4882a593Smuzhiyun #define FUJISOFT_PRODUCT_FS040U 0x9b02
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun /* iBall 3.5G connect wireless modem */
408*4882a593Smuzhiyun #define IBALL_3_5G_CONNECT 0x9605
409*4882a593Smuzhiyun
410*4882a593Smuzhiyun /* Zoom */
411*4882a593Smuzhiyun #define ZOOM_PRODUCT_4597 0x9607
412*4882a593Smuzhiyun
413*4882a593Smuzhiyun /* SpeedUp SU9800 usb 3g modem */
414*4882a593Smuzhiyun #define SPEEDUP_PRODUCT_SU9800 0x9800
415*4882a593Smuzhiyun
416*4882a593Smuzhiyun /* Haier products */
417*4882a593Smuzhiyun #define HAIER_VENDOR_ID 0x201e
418*4882a593Smuzhiyun #define HAIER_PRODUCT_CE81B 0x10f8
419*4882a593Smuzhiyun #define HAIER_PRODUCT_CE100 0x2009
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun /* Gemalto's Cinterion products (formerly Siemens) */
422*4882a593Smuzhiyun #define SIEMENS_VENDOR_ID 0x0681
423*4882a593Smuzhiyun #define CINTERION_VENDOR_ID 0x1e2d
424*4882a593Smuzhiyun #define CINTERION_PRODUCT_HC25_MDMNET 0x0040
425*4882a593Smuzhiyun #define CINTERION_PRODUCT_HC25_MDM 0x0047
426*4882a593Smuzhiyun #define CINTERION_PRODUCT_HC28_MDMNET 0x004A /* same for HC28J */
427*4882a593Smuzhiyun #define CINTERION_PRODUCT_HC28_MDM 0x004C
428*4882a593Smuzhiyun #define CINTERION_PRODUCT_EU3_E 0x0051
429*4882a593Smuzhiyun #define CINTERION_PRODUCT_EU3_P 0x0052
430*4882a593Smuzhiyun #define CINTERION_PRODUCT_PH8 0x0053
431*4882a593Smuzhiyun #define CINTERION_PRODUCT_AHXX 0x0055
432*4882a593Smuzhiyun #define CINTERION_PRODUCT_PLXX 0x0060
433*4882a593Smuzhiyun #define CINTERION_PRODUCT_EXS82 0x006c
434*4882a593Smuzhiyun #define CINTERION_PRODUCT_PH8_2RMNET 0x0082
435*4882a593Smuzhiyun #define CINTERION_PRODUCT_PH8_AUDIO 0x0083
436*4882a593Smuzhiyun #define CINTERION_PRODUCT_AHXX_2RMNET 0x0084
437*4882a593Smuzhiyun #define CINTERION_PRODUCT_AHXX_AUDIO 0x0085
438*4882a593Smuzhiyun #define CINTERION_PRODUCT_CLS8 0x00b0
439*4882a593Smuzhiyun #define CINTERION_PRODUCT_MV31_MBIM 0x00b3
440*4882a593Smuzhiyun #define CINTERION_PRODUCT_MV31_RMNET 0x00b7
441*4882a593Smuzhiyun #define CINTERION_PRODUCT_MV31_2_MBIM 0x00b8
442*4882a593Smuzhiyun #define CINTERION_PRODUCT_MV31_2_RMNET 0x00b9
443*4882a593Smuzhiyun #define CINTERION_PRODUCT_MV32_WA 0x00f1
444*4882a593Smuzhiyun #define CINTERION_PRODUCT_MV32_WB 0x00f2
445*4882a593Smuzhiyun #define CINTERION_PRODUCT_MV32_WA_RMNET 0x00f3
446*4882a593Smuzhiyun #define CINTERION_PRODUCT_MV32_WB_RMNET 0x00f4
447*4882a593Smuzhiyun
448*4882a593Smuzhiyun /* Olivetti products */
449*4882a593Smuzhiyun #define OLIVETTI_VENDOR_ID 0x0b3c
450*4882a593Smuzhiyun #define OLIVETTI_PRODUCT_OLICARD100 0xc000
451*4882a593Smuzhiyun #define OLIVETTI_PRODUCT_OLICARD120 0xc001
452*4882a593Smuzhiyun #define OLIVETTI_PRODUCT_OLICARD140 0xc002
453*4882a593Smuzhiyun #define OLIVETTI_PRODUCT_OLICARD145 0xc003
454*4882a593Smuzhiyun #define OLIVETTI_PRODUCT_OLICARD155 0xc004
455*4882a593Smuzhiyun #define OLIVETTI_PRODUCT_OLICARD200 0xc005
456*4882a593Smuzhiyun #define OLIVETTI_PRODUCT_OLICARD160 0xc00a
457*4882a593Smuzhiyun #define OLIVETTI_PRODUCT_OLICARD500 0xc00b
458*4882a593Smuzhiyun
459*4882a593Smuzhiyun /* Celot products */
460*4882a593Smuzhiyun #define CELOT_VENDOR_ID 0x211f
461*4882a593Smuzhiyun #define CELOT_PRODUCT_CT680M 0x6801
462*4882a593Smuzhiyun
463*4882a593Smuzhiyun /* Samsung products */
464*4882a593Smuzhiyun #define SAMSUNG_VENDOR_ID 0x04e8
465*4882a593Smuzhiyun #define SAMSUNG_PRODUCT_GT_B3730 0x6889
466*4882a593Smuzhiyun
467*4882a593Smuzhiyun /* YUGA products www.yuga-info.com gavin.kx@qq.com */
468*4882a593Smuzhiyun #define YUGA_VENDOR_ID 0x257A
469*4882a593Smuzhiyun #define YUGA_PRODUCT_CEM600 0x1601
470*4882a593Smuzhiyun #define YUGA_PRODUCT_CEM610 0x1602
471*4882a593Smuzhiyun #define YUGA_PRODUCT_CEM500 0x1603
472*4882a593Smuzhiyun #define YUGA_PRODUCT_CEM510 0x1604
473*4882a593Smuzhiyun #define YUGA_PRODUCT_CEM800 0x1605
474*4882a593Smuzhiyun #define YUGA_PRODUCT_CEM900 0x1606
475*4882a593Smuzhiyun
476*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU818 0x1607
477*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU816 0x1608
478*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU828 0x1609
479*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU826 0x160A
480*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU518 0x160B
481*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU516 0x160C
482*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU528 0x160D
483*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU526 0x160F
484*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU881 0x161F
485*4882a593Smuzhiyun #define YUGA_PRODUCT_CEU882 0x162F
486*4882a593Smuzhiyun
487*4882a593Smuzhiyun #define YUGA_PRODUCT_CWM600 0x2601
488*4882a593Smuzhiyun #define YUGA_PRODUCT_CWM610 0x2602
489*4882a593Smuzhiyun #define YUGA_PRODUCT_CWM500 0x2603
490*4882a593Smuzhiyun #define YUGA_PRODUCT_CWM510 0x2604
491*4882a593Smuzhiyun #define YUGA_PRODUCT_CWM800 0x2605
492*4882a593Smuzhiyun #define YUGA_PRODUCT_CWM900 0x2606
493*4882a593Smuzhiyun
494*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU718 0x2607
495*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU716 0x2608
496*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU728 0x2609
497*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU726 0x260A
498*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU518 0x260B
499*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU516 0x260C
500*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU528 0x260D
501*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU581 0x260E
502*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU526 0x260F
503*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU582 0x261F
504*4882a593Smuzhiyun #define YUGA_PRODUCT_CWU583 0x262F
505*4882a593Smuzhiyun
506*4882a593Smuzhiyun #define YUGA_PRODUCT_CLM600 0x3601
507*4882a593Smuzhiyun #define YUGA_PRODUCT_CLM610 0x3602
508*4882a593Smuzhiyun #define YUGA_PRODUCT_CLM500 0x3603
509*4882a593Smuzhiyun #define YUGA_PRODUCT_CLM510 0x3604
510*4882a593Smuzhiyun #define YUGA_PRODUCT_CLM800 0x3605
511*4882a593Smuzhiyun #define YUGA_PRODUCT_CLM900 0x3606
512*4882a593Smuzhiyun
513*4882a593Smuzhiyun #define YUGA_PRODUCT_CLU718 0x3607
514*4882a593Smuzhiyun #define YUGA_PRODUCT_CLU716 0x3608
515*4882a593Smuzhiyun #define YUGA_PRODUCT_CLU728 0x3609
516*4882a593Smuzhiyun #define YUGA_PRODUCT_CLU726 0x360A
517*4882a593Smuzhiyun #define YUGA_PRODUCT_CLU518 0x360B
518*4882a593Smuzhiyun #define YUGA_PRODUCT_CLU516 0x360C
519*4882a593Smuzhiyun #define YUGA_PRODUCT_CLU528 0x360D
520*4882a593Smuzhiyun #define YUGA_PRODUCT_CLU526 0x360F
521*4882a593Smuzhiyun
522*4882a593Smuzhiyun /* Viettel products */
523*4882a593Smuzhiyun #define VIETTEL_VENDOR_ID 0x2262
524*4882a593Smuzhiyun #define VIETTEL_PRODUCT_VT1000 0x0002
525*4882a593Smuzhiyun
526*4882a593Smuzhiyun /* ZD Incorporated */
527*4882a593Smuzhiyun #define ZD_VENDOR_ID 0x0685
528*4882a593Smuzhiyun #define ZD_PRODUCT_7000 0x7000
529*4882a593Smuzhiyun
530*4882a593Smuzhiyun /* LG products */
531*4882a593Smuzhiyun #define LG_VENDOR_ID 0x1004
532*4882a593Smuzhiyun #define LG_PRODUCT_L02C 0x618f
533*4882a593Smuzhiyun
534*4882a593Smuzhiyun /* MediaTek products */
535*4882a593Smuzhiyun #define MEDIATEK_VENDOR_ID 0x0e8d
536*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_DC_1COM 0x00a0
537*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_DC_4COM 0x00a5
538*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_DC_4COM2 0x00a7
539*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_DC_5COM 0x00a4
540*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_7208_1COM 0x7101
541*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_7208_2COM 0x7102
542*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_7103_2COM 0x7103
543*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_7106_2COM 0x7106
544*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_FP_1COM 0x0003
545*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_FP_2COM 0x0023
546*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_FPDC_1COM 0x0043
547*4882a593Smuzhiyun #define MEDIATEK_PRODUCT_FPDC_2COM 0x0033
548*4882a593Smuzhiyun
549*4882a593Smuzhiyun /* Cellient products */
550*4882a593Smuzhiyun #define CELLIENT_VENDOR_ID 0x2692
551*4882a593Smuzhiyun #define CELLIENT_PRODUCT_MEN200 0x9005
552*4882a593Smuzhiyun #define CELLIENT_PRODUCT_MPL200 0x9025
553*4882a593Smuzhiyun
554*4882a593Smuzhiyun /* Hyundai Petatel Inc. products */
555*4882a593Smuzhiyun #define PETATEL_VENDOR_ID 0x1ff4
556*4882a593Smuzhiyun #define PETATEL_PRODUCT_NP10T_600A 0x600a
557*4882a593Smuzhiyun #define PETATEL_PRODUCT_NP10T_600E 0x600e
558*4882a593Smuzhiyun
559*4882a593Smuzhiyun /* TP-LINK Incorporated products */
560*4882a593Smuzhiyun #define TPLINK_VENDOR_ID 0x2357
561*4882a593Smuzhiyun #define TPLINK_PRODUCT_LTE 0x000D
562*4882a593Smuzhiyun #define TPLINK_PRODUCT_MA180 0x0201
563*4882a593Smuzhiyun
564*4882a593Smuzhiyun /* Changhong products */
565*4882a593Smuzhiyun #define CHANGHONG_VENDOR_ID 0x2077
566*4882a593Smuzhiyun #define CHANGHONG_PRODUCT_CH690 0x7001
567*4882a593Smuzhiyun
568*4882a593Smuzhiyun /* Inovia */
569*4882a593Smuzhiyun #define INOVIA_VENDOR_ID 0x20a6
570*4882a593Smuzhiyun #define INOVIA_SEW858 0x1105
571*4882a593Smuzhiyun
572*4882a593Smuzhiyun /* VIA Telecom */
573*4882a593Smuzhiyun #define VIATELECOM_VENDOR_ID 0x15eb
574*4882a593Smuzhiyun #define VIATELECOM_PRODUCT_CDS7 0x0001
575*4882a593Smuzhiyun
576*4882a593Smuzhiyun /* WeTelecom products */
577*4882a593Smuzhiyun #define WETELECOM_VENDOR_ID 0x22de
578*4882a593Smuzhiyun #define WETELECOM_PRODUCT_WMD200 0x6801
579*4882a593Smuzhiyun #define WETELECOM_PRODUCT_6802 0x6802
580*4882a593Smuzhiyun #define WETELECOM_PRODUCT_WMD300 0x6803
581*4882a593Smuzhiyun
582*4882a593Smuzhiyun /* OPPO products */
583*4882a593Smuzhiyun #define OPPO_VENDOR_ID 0x22d9
584*4882a593Smuzhiyun #define OPPO_PRODUCT_R11 0x276c
585*4882a593Smuzhiyun
586*4882a593Smuzhiyun /* Sierra Wireless products */
587*4882a593Smuzhiyun #define SIERRA_VENDOR_ID 0x1199
588*4882a593Smuzhiyun #define SIERRA_PRODUCT_EM9191 0x90d3
589*4882a593Smuzhiyun
590*4882a593Smuzhiyun /* Device flags */
591*4882a593Smuzhiyun
592*4882a593Smuzhiyun /* Highest interface number which can be used with NCTRL() and RSVD() */
593*4882a593Smuzhiyun #define FLAG_IFNUM_MAX 7
594*4882a593Smuzhiyun
595*4882a593Smuzhiyun /* Interface does not support modem-control requests */
596*4882a593Smuzhiyun #define NCTRL(ifnum) ((BIT(ifnum) & 0xff) << 8)
597*4882a593Smuzhiyun
598*4882a593Smuzhiyun /* Interface is reserved */
599*4882a593Smuzhiyun #define RSVD(ifnum) ((BIT(ifnum) & 0xff) << 0)
600*4882a593Smuzhiyun
601*4882a593Smuzhiyun /* Interface must have two endpoints */
602*4882a593Smuzhiyun #define NUMEP2 BIT(16)
603*4882a593Smuzhiyun
604*4882a593Smuzhiyun /* Device needs ZLP */
605*4882a593Smuzhiyun #define ZLP BIT(17)
606*4882a593Smuzhiyun
607*4882a593Smuzhiyun
608*4882a593Smuzhiyun static const struct usb_device_id option_ids[] = {
609*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
610*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
611*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },
612*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD) },
613*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD_LIGHT) },
614*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS) },
615*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS_LIGHT) },
616*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS_QUAD) },
617*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS_QUAD_LIGHT) },
618*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) },
619*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA_BUS) },
620*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER) },
621*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER_BUS) },
622*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX_READY) },
623*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_LIGHT) },
624*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_GT) },
625*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_EX) },
626*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_MODEM) },
627*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_MODEM) },
628*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM) },
629*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_LITE) },
630*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) },
631*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) },
632*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) },
633*4882a593Smuzhiyun { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GTM380_MODEM) },
634*4882a593Smuzhiyun { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_Q101) },
635*4882a593Smuzhiyun { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_Q111) },
636*4882a593Smuzhiyun { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLX) },
637*4882a593Smuzhiyun { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GKE) },
638*4882a593Smuzhiyun { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
639*4882a593Smuzhiyun { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
640*4882a593Smuzhiyun .driver_info = RSVD(4) },
641*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c05, USB_CLASS_COMM, 0x02, 0xff) },
642*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c1f, USB_CLASS_COMM, 0x02, 0xff) },
643*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c23, USB_CLASS_COMM, 0x02, 0xff) },
644*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff),
645*4882a593Smuzhiyun .driver_info = RSVD(1) },
646*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173S6, 0xff, 0xff, 0xff),
647*4882a593Smuzhiyun .driver_info = RSVD(1) },
648*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1750, 0xff, 0xff, 0xff),
649*4882a593Smuzhiyun .driver_info = RSVD(2) },
650*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1441, USB_CLASS_COMM, 0x02, 0xff) },
651*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1442, USB_CLASS_COMM, 0x02, 0xff) },
652*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff),
653*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(2) },
654*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3765, 0xff, 0xff, 0xff),
655*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(2) },
656*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x14ac, 0xff, 0xff, 0xff), /* Huawei E1820 */
657*4882a593Smuzhiyun .driver_info = RSVD(1) },
658*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4605, 0xff, 0xff, 0xff),
659*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(2) },
660*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0xff, 0xff) },
661*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x01) },
662*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x02) },
663*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x03) },
664*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x04) },
665*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x05) },
666*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x06) },
667*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0A) },
668*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0B) },
669*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0D) },
670*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0E) },
671*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0F) },
672*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x10) },
673*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x12) },
674*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x13) },
675*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x14) },
676*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x15) },
677*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x17) },
678*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x18) },
679*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x19) },
680*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1A) },
681*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1B) },
682*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1C) },
683*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x31) },
684*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x32) },
685*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x33) },
686*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x34) },
687*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x35) },
688*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x36) },
689*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3A) },
690*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3B) },
691*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3D) },
692*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3E) },
693*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3F) },
694*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x48) },
695*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x49) },
696*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4A) },
697*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4B) },
698*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4C) },
699*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x61) },
700*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x62) },
701*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x63) },
702*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x64) },
703*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x65) },
704*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x66) },
705*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6A) },
706*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6B) },
707*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6D) },
708*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6E) },
709*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6F) },
710*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x72) },
711*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x73) },
712*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x74) },
713*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x75) },
714*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x78) },
715*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x79) },
716*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7A) },
717*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7B) },
718*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7C) },
719*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x01) },
720*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x02) },
721*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x03) },
722*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x04) },
723*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x05) },
724*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x06) },
725*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0A) },
726*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0B) },
727*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0D) },
728*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0E) },
729*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0F) },
730*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x10) },
731*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x12) },
732*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x13) },
733*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x14) },
734*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x15) },
735*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x17) },
736*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x18) },
737*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x19) },
738*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1A) },
739*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1B) },
740*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1C) },
741*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x31) },
742*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x32) },
743*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x33) },
744*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x34) },
745*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x35) },
746*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x36) },
747*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3A) },
748*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3B) },
749*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3D) },
750*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3E) },
751*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3F) },
752*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x48) },
753*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x49) },
754*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4A) },
755*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4B) },
756*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4C) },
757*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x61) },
758*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x62) },
759*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x63) },
760*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x64) },
761*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x65) },
762*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x66) },
763*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6A) },
764*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6B) },
765*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6D) },
766*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6E) },
767*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6F) },
768*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x72) },
769*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x73) },
770*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x74) },
771*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x75) },
772*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x78) },
773*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x79) },
774*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7A) },
775*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7B) },
776*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7C) },
777*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x01) },
778*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x02) },
779*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x03) },
780*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x04) },
781*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x05) },
782*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x06) },
783*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0A) },
784*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0B) },
785*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0D) },
786*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0E) },
787*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0F) },
788*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x10) },
789*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x12) },
790*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x13) },
791*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x14) },
792*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x15) },
793*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x17) },
794*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x18) },
795*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x19) },
796*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1A) },
797*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1B) },
798*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1C) },
799*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x31) },
800*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x32) },
801*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x33) },
802*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x34) },
803*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x35) },
804*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x36) },
805*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3A) },
806*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3B) },
807*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3D) },
808*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3E) },
809*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3F) },
810*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x48) },
811*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x49) },
812*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4A) },
813*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4B) },
814*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4C) },
815*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x61) },
816*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x62) },
817*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x63) },
818*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x64) },
819*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x65) },
820*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x66) },
821*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6A) },
822*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6B) },
823*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6D) },
824*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6E) },
825*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6F) },
826*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x72) },
827*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x73) },
828*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x74) },
829*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x75) },
830*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x78) },
831*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x79) },
832*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7A) },
833*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7B) },
834*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7C) },
835*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x01) },
836*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x02) },
837*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x03) },
838*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x04) },
839*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x05) },
840*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x06) },
841*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0A) },
842*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0B) },
843*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0D) },
844*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0E) },
845*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0F) },
846*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x10) },
847*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x12) },
848*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x13) },
849*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x14) },
850*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x15) },
851*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x17) },
852*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x18) },
853*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x19) },
854*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1A) },
855*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1B) },
856*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1C) },
857*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x31) },
858*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x32) },
859*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x33) },
860*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x34) },
861*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x35) },
862*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x36) },
863*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3A) },
864*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3B) },
865*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3D) },
866*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3E) },
867*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3F) },
868*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x48) },
869*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x49) },
870*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4A) },
871*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4B) },
872*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4C) },
873*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x61) },
874*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x62) },
875*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x63) },
876*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x64) },
877*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x65) },
878*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x66) },
879*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6A) },
880*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6B) },
881*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6D) },
882*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6E) },
883*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6F) },
884*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x72) },
885*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x73) },
886*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x74) },
887*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x75) },
888*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x78) },
889*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x79) },
890*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7A) },
891*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7B) },
892*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7C) },
893*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x01) },
894*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x02) },
895*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x03) },
896*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x04) },
897*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x05) },
898*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x06) },
899*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0A) },
900*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0B) },
901*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0D) },
902*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0E) },
903*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0F) },
904*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x10) },
905*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x12) },
906*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x13) },
907*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x14) },
908*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x15) },
909*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x17) },
910*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x18) },
911*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x19) },
912*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1A) },
913*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1B) },
914*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1C) },
915*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x31) },
916*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x32) },
917*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x33) },
918*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x34) },
919*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x35) },
920*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x36) },
921*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3A) },
922*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3B) },
923*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3D) },
924*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3E) },
925*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3F) },
926*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x48) },
927*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x49) },
928*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4A) },
929*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4B) },
930*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4C) },
931*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x61) },
932*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x62) },
933*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x63) },
934*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x64) },
935*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x65) },
936*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x66) },
937*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6A) },
938*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6B) },
939*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6D) },
940*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6E) },
941*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6F) },
942*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x72) },
943*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x73) },
944*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x74) },
945*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x75) },
946*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x78) },
947*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x79) },
948*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7A) },
949*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7B) },
950*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7C) },
951*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x01) },
952*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x02) },
953*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x03) },
954*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x04) },
955*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x05) },
956*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x06) },
957*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0A) },
958*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0B) },
959*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0D) },
960*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0E) },
961*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0F) },
962*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x10) },
963*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x12) },
964*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x13) },
965*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x14) },
966*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x15) },
967*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x17) },
968*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x18) },
969*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x19) },
970*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1A) },
971*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1B) },
972*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1C) },
973*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x31) },
974*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x32) },
975*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x33) },
976*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x34) },
977*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x35) },
978*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x36) },
979*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3A) },
980*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3B) },
981*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3D) },
982*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3E) },
983*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3F) },
984*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x48) },
985*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x49) },
986*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4A) },
987*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4B) },
988*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4C) },
989*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x61) },
990*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x62) },
991*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x63) },
992*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x64) },
993*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x65) },
994*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x66) },
995*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6A) },
996*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6B) },
997*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6D) },
998*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6E) },
999*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6F) },
1000*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x72) },
1001*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x73) },
1002*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x74) },
1003*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x75) },
1004*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x78) },
1005*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x79) },
1006*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7A) },
1007*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7B) },
1008*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7C) },
1009*4882a593Smuzhiyun
1010*4882a593Smuzhiyun /* Motorola devices */
1011*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x2a70, 0xff, 0xff, 0xff) }, /* mdm6600 */
1012*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x2e0a, 0xff, 0xff, 0xff) }, /* mdm9600 */
1013*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x4281, 0x0a, 0x00, 0xfc) }, /* mdm ram dl */
1014*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x900e, 0xff, 0xff, 0xff) }, /* mdm qc dl */
1015*4882a593Smuzhiyun
1016*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) },
1017*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) },
1018*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V740) },
1019*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V720) },
1020*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U730) },
1021*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U740) },
1022*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U870) },
1023*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_XU870) },
1024*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_X950D) },
1025*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EV620) },
1026*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES720) },
1027*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E725) },
1028*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES620) },
1029*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU730) },
1030*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU740) },
1031*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) },
1032*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) },
1033*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) },
1034*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_OVMC760) },
1035*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC780) },
1036*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED) },
1037*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED) },
1038*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED) },
1039*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED) },
1040*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED) },
1041*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED) },
1042*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED3) },
1043*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED4) },
1044*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED5) },
1045*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED6) },
1046*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED7) },
1047*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC996D) },
1048*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MF3470) },
1049*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC547) },
1050*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED) },
1051*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED) },
1052*4882a593Smuzhiyun { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G2) },
1053*4882a593Smuzhiyun /* Novatel Ovation MC551 a.k.a. Verizon USB551L */
1054*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC551, 0xff, 0xff, 0xff) },
1055*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E362, 0xff, 0xff, 0xff) },
1056*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E371, 0xff, 0xff, 0xff) },
1057*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U620L, 0xff, 0x00, 0x00) },
1058*4882a593Smuzhiyun
1059*4882a593Smuzhiyun { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) },
1060*4882a593Smuzhiyun { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) },
1061*4882a593Smuzhiyun { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H02) },
1062*4882a593Smuzhiyun { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_SKYPEPHONE_S2) },
1063*4882a593Smuzhiyun
1064*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */
1065*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5500_MINICARD) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
1066*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5505_MINICARD) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
1067*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_EXPRESSCARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */
1068*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5510_EXPRESSCARD) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */
1069*4882a593Smuzhiyun { 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 */
1070*4882a593Smuzhiyun { 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 */
1071*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_VZW) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
1072*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_SPRINT) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
1073*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_TELUS) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
1074*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_CINGULAR) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */
1075*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_L) }, /* Dell Wireless HSDPA 5520 */
1076*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_I) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */
1077*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_SPRINT) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
1078*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_TELUS) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
1079*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_VZW) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
1080*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5800_MINICARD_VZW, 0xff, 0xff, 0xff) },
1081*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5800_V2_MINICARD_VZW, 0xff, 0xff, 0xff) },
1082*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5804_MINICARD_ATT, 0xff, 0xff, 0xff) },
1083*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E),
1084*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
1085*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E_ESIM),
1086*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
1087*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E),
1088*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(6) },
1089*4882a593Smuzhiyun { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E_ESIM),
1090*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(6) },
1091*4882a593Smuzhiyun { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */
1092*4882a593Smuzhiyun { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
1093*4882a593Smuzhiyun { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
1094*4882a593Smuzhiyun { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
1095*4882a593Smuzhiyun { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },
1096*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1, 0xff) },
1097*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2, 0xff) },
1098*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1004, 0xff) },
1099*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1005, 0xff) },
1100*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1006, 0xff) },
1101*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1007, 0xff) },
1102*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1008, 0xff) },
1103*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1009, 0xff) },
1104*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100A, 0xff) },
1105*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100B, 0xff) },
1106*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100C, 0xff) },
1107*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100D, 0xff) },
1108*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100E, 0xff) },
1109*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100F, 0xff) },
1110*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1010, 0xff) },
1111*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1011, 0xff) },
1112*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1012, 0xff) },
1113*4882a593Smuzhiyun { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC650) },
1114*4882a593Smuzhiyun { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) },
1115*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */
1116*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, 0x6001, 0xff, 0xff, 0xff), /* 4G LTE usb-modem U901 */
1117*4882a593Smuzhiyun .driver_info = RSVD(3) },
1118*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
1119*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
1120*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
1121*4882a593Smuzhiyun .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
1122*4882a593Smuzhiyun /* Quectel products using Qualcomm vendor ID */
1123*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
1124*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
1125*4882a593Smuzhiyun .driver_info = RSVD(4) },
1126*4882a593Smuzhiyun /* Yuga products use Qualcomm vendor ID */
1127*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, YUGA_PRODUCT_CLM920_NC5),
1128*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(4) },
1129*4882a593Smuzhiyun /* u-blox products using Qualcomm vendor ID */
1130*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M),
1131*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(3) },
1132*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x908b), /* u-blox LARA-R6 00B */
1133*4882a593Smuzhiyun .driver_info = RSVD(4) },
1134*4882a593Smuzhiyun { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x90fa),
1135*4882a593Smuzhiyun .driver_info = RSVD(3) },
1136*4882a593Smuzhiyun /* u-blox products */
1137*4882a593Smuzhiyun { USB_DEVICE(UBLOX_VENDOR_ID, 0x1341) }, /* u-blox LARA-L6 */
1138*4882a593Smuzhiyun { USB_DEVICE(UBLOX_VENDOR_ID, 0x1342), /* u-blox LARA-L6 (RMNET) */
1139*4882a593Smuzhiyun .driver_info = RSVD(4) },
1140*4882a593Smuzhiyun { USB_DEVICE(UBLOX_VENDOR_ID, 0x1343), /* u-blox LARA-L6 (ECM) */
1141*4882a593Smuzhiyun .driver_info = RSVD(4) },
1142*4882a593Smuzhiyun /* Quectel products using Quectel vendor ID */
1143*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff),
1144*4882a593Smuzhiyun .driver_info = NUMEP2 },
1145*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0, 0) },
1146*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0xff, 0xff),
1147*4882a593Smuzhiyun .driver_info = NUMEP2 },
1148*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0, 0) },
1149*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG91, 0xff, 0xff, 0xff),
1150*4882a593Smuzhiyun .driver_info = NUMEP2 },
1151*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG91, 0xff, 0, 0) },
1152*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0xff, 0xff),
1153*4882a593Smuzhiyun .driver_info = NUMEP2 },
1154*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) },
1155*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, 0x0203, 0xff), /* BG95-M3 */
1156*4882a593Smuzhiyun .driver_info = ZLP },
1157*4882a593Smuzhiyun { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
1158*4882a593Smuzhiyun .driver_info = RSVD(4) },
1159*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
1160*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
1161*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
1162*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G, 0xff),
1163*4882a593Smuzhiyun .driver_info = RSVD(6) | ZLP },
1164*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_SG, 0xff),
1165*4882a593Smuzhiyun .driver_info = RSVD(6) | ZLP },
1166*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0x00, 0x40) },
1167*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x30) },
1168*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x40) },
1169*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0xff, 0xff),
1170*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
1171*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0, 0) },
1172*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0620, 0xff, 0xff, 0x30) }, /* EM160R-GL */
1173*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0620, 0xff, 0, 0) },
1174*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, 0x0700, 0xff), /* BG95 */
1175*4882a593Smuzhiyun .driver_info = RSVD(3) | ZLP },
1176*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x30) },
1177*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0) },
1178*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0900, 0xff, 0, 0) }, // RM500U-CN
1179*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x10),
1180*4882a593Smuzhiyun .driver_info = ZLP },
1181*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0xff, 0x30) },
1182*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0, 0x40) },
1183*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0, 0) },
1184*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200S_CN, 0xff, 0, 0) },
1185*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) },
1186*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500K, 0xff, 0x00, 0x00) },
1187*4882a593Smuzhiyun
1188*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
1189*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
1190*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003),
1191*4882a593Smuzhiyun .driver_info = RSVD(0) },
1192*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6004) },
1193*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6005) },
1194*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CGU_628A) },
1195*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHE_628S),
1196*4882a593Smuzhiyun .driver_info = RSVD(0) },
1197*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_301),
1198*4882a593Smuzhiyun .driver_info = RSVD(0) },
1199*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_628),
1200*4882a593Smuzhiyun .driver_info = RSVD(0) },
1201*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_628S) },
1202*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU_680) },
1203*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU_685A) },
1204*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_720S),
1205*4882a593Smuzhiyun .driver_info = RSVD(0) },
1206*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7002),
1207*4882a593Smuzhiyun .driver_info = RSVD(0) },
1208*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_629K),
1209*4882a593Smuzhiyun .driver_info = RSVD(4) },
1210*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7004),
1211*4882a593Smuzhiyun .driver_info = RSVD(3) },
1212*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7005) },
1213*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CGU_629),
1214*4882a593Smuzhiyun .driver_info = RSVD(5) },
1215*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_629S),
1216*4882a593Smuzhiyun .driver_info = RSVD(4) },
1217*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_720I),
1218*4882a593Smuzhiyun .driver_info = RSVD(0) },
1219*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7212),
1220*4882a593Smuzhiyun .driver_info = RSVD(0) },
1221*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7213),
1222*4882a593Smuzhiyun .driver_info = RSVD(0) },
1223*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7251),
1224*4882a593Smuzhiyun .driver_info = RSVD(1) },
1225*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7252),
1226*4882a593Smuzhiyun .driver_info = RSVD(1) },
1227*4882a593Smuzhiyun { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7253),
1228*4882a593Smuzhiyun .driver_info = RSVD(1) },
1229*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
1230*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) },
1231*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) },
1232*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
1233*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
1234*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) },
1235*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1031, 0xff), /* Telit LE910C1-EUX */
1236*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(3) },
1237*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1033, 0xff), /* Telit LE910C1-EUX (ECM) */
1238*4882a593Smuzhiyun .driver_info = NCTRL(0) },
1239*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG0),
1240*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(1) | NCTRL(2) | RSVD(3) },
1241*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG1),
1242*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1243*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG2),
1244*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
1245*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG3),
1246*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
1247*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG5, 0xff),
1248*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(1) | NCTRL(2) | RSVD(3) },
1249*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1050, 0xff), /* Telit FN980 (rmnet) */
1250*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1251*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1051, 0xff), /* Telit FN980 (MBIM) */
1252*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1253*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1052, 0xff), /* Telit FN980 (RNDIS) */
1254*4882a593Smuzhiyun .driver_info = NCTRL(2) | RSVD(3) },
1255*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1053, 0xff), /* Telit FN980 (ECM) */
1256*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1257*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1054, 0xff), /* Telit FT980-KS */
1258*4882a593Smuzhiyun .driver_info = NCTRL(2) | RSVD(3) },
1259*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1055, 0xff), /* Telit FN980 (PCIe) */
1260*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1261*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1056, 0xff), /* Telit FD980 */
1262*4882a593Smuzhiyun .driver_info = NCTRL(2) | RSVD(3) },
1263*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1057, 0xff), /* Telit FN980 */
1264*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1265*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1058, 0xff), /* Telit FN980 (PCIe) */
1266*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1267*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1060, 0xff), /* Telit LN920 (rmnet) */
1268*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1269*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1061, 0xff), /* Telit LN920 (MBIM) */
1270*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1271*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1062, 0xff), /* Telit LN920 (RNDIS) */
1272*4882a593Smuzhiyun .driver_info = NCTRL(2) | RSVD(3) },
1273*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1063, 0xff), /* Telit LN920 (ECM) */
1274*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1275*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1070, 0xff), /* Telit FN990 (rmnet) */
1276*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1277*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1071, 0xff), /* Telit FN990 (MBIM) */
1278*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1279*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1072, 0xff), /* Telit FN990 (RNDIS) */
1280*4882a593Smuzhiyun .driver_info = NCTRL(2) | RSVD(3) },
1281*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1073, 0xff), /* Telit FN990 (ECM) */
1282*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1283*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1075, 0xff), /* Telit FN990 (PCIe) */
1284*4882a593Smuzhiyun .driver_info = RSVD(0) },
1285*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910),
1286*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) },
1287*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM),
1288*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(3) },
1289*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1102, 0xff), /* Telit ME910 (ECM) */
1290*4882a593Smuzhiyun .driver_info = NCTRL(0) },
1291*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x110a, 0xff), /* Telit ME910G1 */
1292*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(3) },
1293*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x110b, 0xff), /* Telit ME910G1 (ECM) */
1294*4882a593Smuzhiyun .driver_info = NCTRL(0) },
1295*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910),
1296*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1297*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1203, 0xff), /* Telit LE910Cx (RNDIS) */
1298*4882a593Smuzhiyun .driver_info = NCTRL(2) | RSVD(3) },
1299*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1204, 0xff), /* Telit LE910Cx (MBIM) */
1300*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1301*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910_USBCFG4),
1302*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
1303*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920),
1304*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(5) },
1305*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1207) },
1306*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1208),
1307*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1308*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1211),
1309*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
1310*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1212),
1311*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1312*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1213, 0xff) },
1313*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1214),
1314*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
1315*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1230, 0xff), /* Telit LE910Cx (rmnet) */
1316*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1317*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1231, 0xff), /* Telit LE910Cx (RNDIS) */
1318*4882a593Smuzhiyun .driver_info = NCTRL(2) | RSVD(3) },
1319*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x1250, 0xff, 0x00, 0x00) }, /* Telit LE910Cx (rmnet) */
1320*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, 0x1260),
1321*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1322*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, 0x1261),
1323*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1324*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, 0x1900), /* Telit LN940 (QMI) */
1325*4882a593Smuzhiyun .driver_info = NCTRL(0) | RSVD(1) },
1326*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1901, 0xff), /* Telit LN940 (MBIM) */
1327*4882a593Smuzhiyun .driver_info = NCTRL(0) },
1328*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x7010, 0xff), /* Telit LE910-S1 (RNDIS) */
1329*4882a593Smuzhiyun .driver_info = NCTRL(2) },
1330*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x7011, 0xff), /* Telit LE910-S1 (ECM) */
1331*4882a593Smuzhiyun .driver_info = NCTRL(2) },
1332*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x701a, 0xff), /* Telit LE910R1 (RNDIS) */
1333*4882a593Smuzhiyun .driver_info = NCTRL(2) },
1334*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x701b, 0xff), /* Telit LE910R1 (ECM) */
1335*4882a593Smuzhiyun .driver_info = NCTRL(2) },
1336*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, 0x9010), /* Telit SBL FN980 flashing device */
1337*4882a593Smuzhiyun .driver_info = NCTRL(0) | ZLP },
1338*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, 0x9200), /* Telit LE910S1 flashing device */
1339*4882a593Smuzhiyun .driver_info = NCTRL(0) | ZLP },
1340*4882a593Smuzhiyun { USB_DEVICE(TELIT_VENDOR_ID, 0x9201), /* Telit LE910R1 flashing device */
1341*4882a593Smuzhiyun .driver_info = NCTRL(0) | ZLP },
1342*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */
1343*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff),
1344*4882a593Smuzhiyun .driver_info = RSVD(1) },
1345*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0003, 0xff, 0xff, 0xff) },
1346*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0004, 0xff, 0xff, 0xff) },
1347*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0005, 0xff, 0xff, 0xff) },
1348*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0006, 0xff, 0xff, 0xff) },
1349*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0008, 0xff, 0xff, 0xff) },
1350*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0009, 0xff, 0xff, 0xff) },
1351*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000a, 0xff, 0xff, 0xff) },
1352*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000b, 0xff, 0xff, 0xff) },
1353*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000c, 0xff, 0xff, 0xff) },
1354*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000d, 0xff, 0xff, 0xff) },
1355*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000e, 0xff, 0xff, 0xff) },
1356*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x000f, 0xff, 0xff, 0xff) },
1357*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0010, 0xff, 0xff, 0xff) },
1358*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0011, 0xff, 0xff, 0xff) },
1359*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0012, 0xff, 0xff, 0xff),
1360*4882a593Smuzhiyun .driver_info = RSVD(1) },
1361*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0013, 0xff, 0xff, 0xff) },
1362*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628, 0xff, 0xff, 0xff) },
1363*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0016, 0xff, 0xff, 0xff) },
1364*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0017, 0xff, 0xff, 0xff),
1365*4882a593Smuzhiyun .driver_info = RSVD(3) },
1366*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0018, 0xff, 0xff, 0xff) },
1367*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0019, 0xff, 0xff, 0xff),
1368*4882a593Smuzhiyun .driver_info = RSVD(3) },
1369*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0020, 0xff, 0xff, 0xff) },
1370*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0021, 0xff, 0xff, 0xff),
1371*4882a593Smuzhiyun .driver_info = RSVD(4) },
1372*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0022, 0xff, 0xff, 0xff) },
1373*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0023, 0xff, 0xff, 0xff) },
1374*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0024, 0xff, 0xff, 0xff) },
1375*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0025, 0xff, 0xff, 0xff),
1376*4882a593Smuzhiyun .driver_info = RSVD(1) },
1377*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0028, 0xff, 0xff, 0xff) },
1378*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0029, 0xff, 0xff, 0xff) },
1379*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0030, 0xff, 0xff, 0xff) },
1380*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626, 0xff, 0xff, 0xff),
1381*4882a593Smuzhiyun .driver_info = NCTRL(0) | NCTRL(1) | RSVD(4) },
1382*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0032, 0xff, 0xff, 0xff) },
1383*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0033, 0xff, 0xff, 0xff) },
1384*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0034, 0xff, 0xff, 0xff) },
1385*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0037, 0xff, 0xff, 0xff),
1386*4882a593Smuzhiyun .driver_info = NCTRL(0) | NCTRL(1) },
1387*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0038, 0xff, 0xff, 0xff) },
1388*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0039, 0xff, 0xff, 0xff) },
1389*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0040, 0xff, 0xff, 0xff) },
1390*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0042, 0xff, 0xff, 0xff),
1391*4882a593Smuzhiyun .driver_info = RSVD(4) },
1392*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0043, 0xff, 0xff, 0xff) },
1393*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0044, 0xff, 0xff, 0xff) },
1394*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0048, 0xff, 0xff, 0xff) },
1395*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0049, 0xff, 0xff, 0xff),
1396*4882a593Smuzhiyun .driver_info = RSVD(5) },
1397*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0050, 0xff, 0xff, 0xff) },
1398*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0051, 0xff, 0xff, 0xff) },
1399*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0052, 0xff, 0xff, 0xff),
1400*4882a593Smuzhiyun .driver_info = RSVD(4) },
1401*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0054, 0xff, 0xff, 0xff) },
1402*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0055, 0xff, 0xff, 0xff),
1403*4882a593Smuzhiyun .driver_info = RSVD(1) },
1404*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0056, 0xff, 0xff, 0xff) },
1405*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0057, 0xff, 0xff, 0xff) },
1406*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0058, 0xff, 0xff, 0xff),
1407*4882a593Smuzhiyun .driver_info = RSVD(4) },
1408*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0061, 0xff, 0xff, 0xff) },
1409*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0062, 0xff, 0xff, 0xff) },
1410*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0063, 0xff, 0xff, 0xff),
1411*4882a593Smuzhiyun .driver_info = RSVD(4) },
1412*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0064, 0xff, 0xff, 0xff) },
1413*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0065, 0xff, 0xff, 0xff) },
1414*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0066, 0xff, 0xff, 0xff) },
1415*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0067, 0xff, 0xff, 0xff) },
1416*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0069, 0xff, 0xff, 0xff) },
1417*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0076, 0xff, 0xff, 0xff) },
1418*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0077, 0xff, 0xff, 0xff) },
1419*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0078, 0xff, 0xff, 0xff) },
1420*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0079, 0xff, 0xff, 0xff) },
1421*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0082, 0xff, 0xff, 0xff) },
1422*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0083, 0xff, 0xff, 0xff) },
1423*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0086, 0xff, 0xff, 0xff) },
1424*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0087, 0xff, 0xff, 0xff) },
1425*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0088, 0xff, 0xff, 0xff) },
1426*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0089, 0xff, 0xff, 0xff) },
1427*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0090, 0xff, 0xff, 0xff) },
1428*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0091, 0xff, 0xff, 0xff) },
1429*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0092, 0xff, 0xff, 0xff) },
1430*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0093, 0xff, 0xff, 0xff) },
1431*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0094, 0xff, 0xff, 0xff) },
1432*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0095, 0xff, 0xff, 0xff) },
1433*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0096, 0xff, 0xff, 0xff) },
1434*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0097, 0xff, 0xff, 0xff) },
1435*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0104, 0xff, 0xff, 0xff),
1436*4882a593Smuzhiyun .driver_info = RSVD(4) },
1437*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0105, 0xff, 0xff, 0xff) },
1438*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0106, 0xff, 0xff, 0xff) },
1439*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0108, 0xff, 0xff, 0xff) },
1440*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0113, 0xff, 0xff, 0xff),
1441*4882a593Smuzhiyun .driver_info = RSVD(5) },
1442*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0117, 0xff, 0xff, 0xff) },
1443*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0118, 0xff, 0xff, 0xff),
1444*4882a593Smuzhiyun .driver_info = RSVD(5) },
1445*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0121, 0xff, 0xff, 0xff),
1446*4882a593Smuzhiyun .driver_info = RSVD(5) },
1447*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0122, 0xff, 0xff, 0xff) },
1448*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0123, 0xff, 0xff, 0xff),
1449*4882a593Smuzhiyun .driver_info = RSVD(4) },
1450*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0124, 0xff, 0xff, 0xff),
1451*4882a593Smuzhiyun .driver_info = RSVD(5) },
1452*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0125, 0xff, 0xff, 0xff),
1453*4882a593Smuzhiyun .driver_info = RSVD(6) },
1454*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0126, 0xff, 0xff, 0xff),
1455*4882a593Smuzhiyun .driver_info = RSVD(5) },
1456*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0128, 0xff, 0xff, 0xff) },
1457*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0135, 0xff, 0xff, 0xff) },
1458*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0136, 0xff, 0xff, 0xff) },
1459*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0137, 0xff, 0xff, 0xff) },
1460*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0139, 0xff, 0xff, 0xff) },
1461*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0142, 0xff, 0xff, 0xff) },
1462*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0143, 0xff, 0xff, 0xff) },
1463*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0144, 0xff, 0xff, 0xff) },
1464*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0145, 0xff, 0xff, 0xff) },
1465*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0148, 0xff, 0xff, 0xff) },
1466*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0151, 0xff, 0xff, 0xff) },
1467*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0153, 0xff, 0xff, 0xff) },
1468*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0155, 0xff, 0xff, 0xff) },
1469*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0156, 0xff, 0xff, 0xff) },
1470*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0157, 0xff, 0xff, 0xff),
1471*4882a593Smuzhiyun .driver_info = RSVD(5) },
1472*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0158, 0xff, 0xff, 0xff),
1473*4882a593Smuzhiyun .driver_info = RSVD(3) },
1474*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0159, 0xff, 0xff, 0xff) },
1475*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0161, 0xff, 0xff, 0xff) },
1476*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0162, 0xff, 0xff, 0xff) },
1477*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0164, 0xff, 0xff, 0xff) },
1478*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) },
1479*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0167, 0xff, 0xff, 0xff),
1480*4882a593Smuzhiyun .driver_info = RSVD(4) },
1481*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0189, 0xff, 0xff, 0xff) },
1482*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0191, 0xff, 0xff, 0xff), /* ZTE EuFi890 */
1483*4882a593Smuzhiyun .driver_info = RSVD(4) },
1484*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0196, 0xff, 0xff, 0xff) },
1485*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0197, 0xff, 0xff, 0xff) },
1486*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0199, 0xff, 0xff, 0xff), /* ZTE MF820S */
1487*4882a593Smuzhiyun .driver_info = RSVD(1) },
1488*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0200, 0xff, 0xff, 0xff) },
1489*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0201, 0xff, 0xff, 0xff) },
1490*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0254, 0xff, 0xff, 0xff) },
1491*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0257, 0xff, 0xff, 0xff), /* ZTE MF821 */
1492*4882a593Smuzhiyun .driver_info = RSVD(3) },
1493*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0265, 0xff, 0xff, 0xff), /* ONDA MT8205 */
1494*4882a593Smuzhiyun .driver_info = RSVD(4) },
1495*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0284, 0xff, 0xff, 0xff), /* ZTE MF880 */
1496*4882a593Smuzhiyun .driver_info = RSVD(4) },
1497*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0317, 0xff, 0xff, 0xff) },
1498*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0326, 0xff, 0xff, 0xff),
1499*4882a593Smuzhiyun .driver_info = RSVD(4) },
1500*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0330, 0xff, 0xff, 0xff) },
1501*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0395, 0xff, 0xff, 0xff) },
1502*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0412, 0xff, 0xff, 0xff), /* Telewell TW-LTE 4G */
1503*4882a593Smuzhiyun .driver_info = RSVD(4) },
1504*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0414, 0xff, 0xff, 0xff) },
1505*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0417, 0xff, 0xff, 0xff) },
1506*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x0601, 0xff) }, /* GosunCn ZTE WeLink ME3630 (RNDIS mode) */
1507*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x0602, 0xff) }, /* GosunCn ZTE WeLink ME3630 (MBIM mode) */
1508*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff),
1509*4882a593Smuzhiyun .driver_info = RSVD(4) },
1510*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff),
1511*4882a593Smuzhiyun .driver_info = RSVD(4) },
1512*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff),
1513*4882a593Smuzhiyun .driver_info = RSVD(4) },
1514*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1018, 0xff, 0xff, 0xff) },
1515*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1021, 0xff, 0xff, 0xff),
1516*4882a593Smuzhiyun .driver_info = RSVD(2) },
1517*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1057, 0xff, 0xff, 0xff) },
1518*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1058, 0xff, 0xff, 0xff) },
1519*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1059, 0xff, 0xff, 0xff) },
1520*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1060, 0xff, 0xff, 0xff) },
1521*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1061, 0xff, 0xff, 0xff) },
1522*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1062, 0xff, 0xff, 0xff) },
1523*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1063, 0xff, 0xff, 0xff) },
1524*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1064, 0xff, 0xff, 0xff) },
1525*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1065, 0xff, 0xff, 0xff) },
1526*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1066, 0xff, 0xff, 0xff) },
1527*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1067, 0xff, 0xff, 0xff) },
1528*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1068, 0xff, 0xff, 0xff) },
1529*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1069, 0xff, 0xff, 0xff) },
1530*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1070, 0xff, 0xff, 0xff) },
1531*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1071, 0xff, 0xff, 0xff) },
1532*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1072, 0xff, 0xff, 0xff) },
1533*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1073, 0xff, 0xff, 0xff) },
1534*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1074, 0xff, 0xff, 0xff) },
1535*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1075, 0xff, 0xff, 0xff) },
1536*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1076, 0xff, 0xff, 0xff) },
1537*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1077, 0xff, 0xff, 0xff) },
1538*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1078, 0xff, 0xff, 0xff) },
1539*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1079, 0xff, 0xff, 0xff) },
1540*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1080, 0xff, 0xff, 0xff) },
1541*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1081, 0xff, 0xff, 0xff) },
1542*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1082, 0xff, 0xff, 0xff) },
1543*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1083, 0xff, 0xff, 0xff) },
1544*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1084, 0xff, 0xff, 0xff) },
1545*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1085, 0xff, 0xff, 0xff) },
1546*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1086, 0xff, 0xff, 0xff) },
1547*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1087, 0xff, 0xff, 0xff) },
1548*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1088, 0xff, 0xff, 0xff) },
1549*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1089, 0xff, 0xff, 0xff) },
1550*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1090, 0xff, 0xff, 0xff) },
1551*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1091, 0xff, 0xff, 0xff) },
1552*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1092, 0xff, 0xff, 0xff) },
1553*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1093, 0xff, 0xff, 0xff) },
1554*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1094, 0xff, 0xff, 0xff) },
1555*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1095, 0xff, 0xff, 0xff) },
1556*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1096, 0xff, 0xff, 0xff) },
1557*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1097, 0xff, 0xff, 0xff) },
1558*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1098, 0xff, 0xff, 0xff) },
1559*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1099, 0xff, 0xff, 0xff) },
1560*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1100, 0xff, 0xff, 0xff) },
1561*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1101, 0xff, 0xff, 0xff) },
1562*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1102, 0xff, 0xff, 0xff) },
1563*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1103, 0xff, 0xff, 0xff) },
1564*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1104, 0xff, 0xff, 0xff) },
1565*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1105, 0xff, 0xff, 0xff) },
1566*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1106, 0xff, 0xff, 0xff) },
1567*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1107, 0xff, 0xff, 0xff) },
1568*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1108, 0xff, 0xff, 0xff) },
1569*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1109, 0xff, 0xff, 0xff) },
1570*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1110, 0xff, 0xff, 0xff) },
1571*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1111, 0xff, 0xff, 0xff) },
1572*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1112, 0xff, 0xff, 0xff) },
1573*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1113, 0xff, 0xff, 0xff) },
1574*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1114, 0xff, 0xff, 0xff) },
1575*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1115, 0xff, 0xff, 0xff) },
1576*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1116, 0xff, 0xff, 0xff) },
1577*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1117, 0xff, 0xff, 0xff) },
1578*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1118, 0xff, 0xff, 0xff) },
1579*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1119, 0xff, 0xff, 0xff) },
1580*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1120, 0xff, 0xff, 0xff) },
1581*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1121, 0xff, 0xff, 0xff) },
1582*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1122, 0xff, 0xff, 0xff) },
1583*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1123, 0xff, 0xff, 0xff) },
1584*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1124, 0xff, 0xff, 0xff) },
1585*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1125, 0xff, 0xff, 0xff) },
1586*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1126, 0xff, 0xff, 0xff) },
1587*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1127, 0xff, 0xff, 0xff) },
1588*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1128, 0xff, 0xff, 0xff) },
1589*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1129, 0xff, 0xff, 0xff) },
1590*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1130, 0xff, 0xff, 0xff) },
1591*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1131, 0xff, 0xff, 0xff) },
1592*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1132, 0xff, 0xff, 0xff) },
1593*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1133, 0xff, 0xff, 0xff) },
1594*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1134, 0xff, 0xff, 0xff) },
1595*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1135, 0xff, 0xff, 0xff) },
1596*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1136, 0xff, 0xff, 0xff) },
1597*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1137, 0xff, 0xff, 0xff) },
1598*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1138, 0xff, 0xff, 0xff) },
1599*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1139, 0xff, 0xff, 0xff) },
1600*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1140, 0xff, 0xff, 0xff) },
1601*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1141, 0xff, 0xff, 0xff) },
1602*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1142, 0xff, 0xff, 0xff) },
1603*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1143, 0xff, 0xff, 0xff) },
1604*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1144, 0xff, 0xff, 0xff) },
1605*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1145, 0xff, 0xff, 0xff) },
1606*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1146, 0xff, 0xff, 0xff) },
1607*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1147, 0xff, 0xff, 0xff) },
1608*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1148, 0xff, 0xff, 0xff) },
1609*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1149, 0xff, 0xff, 0xff) },
1610*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1150, 0xff, 0xff, 0xff) },
1611*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1151, 0xff, 0xff, 0xff) },
1612*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1152, 0xff, 0xff, 0xff) },
1613*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1153, 0xff, 0xff, 0xff) },
1614*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1154, 0xff, 0xff, 0xff) },
1615*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1155, 0xff, 0xff, 0xff) },
1616*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1156, 0xff, 0xff, 0xff) },
1617*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1157, 0xff, 0xff, 0xff) },
1618*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1158, 0xff, 0xff, 0xff) },
1619*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1159, 0xff, 0xff, 0xff) },
1620*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1160, 0xff, 0xff, 0xff) },
1621*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1161, 0xff, 0xff, 0xff) },
1622*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1162, 0xff, 0xff, 0xff) },
1623*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1163, 0xff, 0xff, 0xff) },
1624*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1164, 0xff, 0xff, 0xff) },
1625*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1165, 0xff, 0xff, 0xff) },
1626*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1166, 0xff, 0xff, 0xff) },
1627*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1167, 0xff, 0xff, 0xff) },
1628*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1168, 0xff, 0xff, 0xff) },
1629*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1169, 0xff, 0xff, 0xff) },
1630*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1170, 0xff, 0xff, 0xff) },
1631*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1244, 0xff, 0xff, 0xff) },
1632*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1245, 0xff, 0xff, 0xff),
1633*4882a593Smuzhiyun .driver_info = RSVD(4) },
1634*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1246, 0xff, 0xff, 0xff) },
1635*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1247, 0xff, 0xff, 0xff),
1636*4882a593Smuzhiyun .driver_info = RSVD(4) },
1637*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1248, 0xff, 0xff, 0xff) },
1638*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1249, 0xff, 0xff, 0xff) },
1639*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1250, 0xff, 0xff, 0xff) },
1640*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1251, 0xff, 0xff, 0xff) },
1641*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1252, 0xff, 0xff, 0xff),
1642*4882a593Smuzhiyun .driver_info = RSVD(4) },
1643*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1253, 0xff, 0xff, 0xff) },
1644*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1254, 0xff, 0xff, 0xff),
1645*4882a593Smuzhiyun .driver_info = RSVD(4) },
1646*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1255, 0xff, 0xff, 0xff),
1647*4882a593Smuzhiyun .driver_info = RSVD(3) | RSVD(4) },
1648*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1256, 0xff, 0xff, 0xff),
1649*4882a593Smuzhiyun .driver_info = RSVD(4) },
1650*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1257, 0xff, 0xff, 0xff) },
1651*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1258, 0xff, 0xff, 0xff) },
1652*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1259, 0xff, 0xff, 0xff) },
1653*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1260, 0xff, 0xff, 0xff) },
1654*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1261, 0xff, 0xff, 0xff) },
1655*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1262, 0xff, 0xff, 0xff) },
1656*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1263, 0xff, 0xff, 0xff) },
1657*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1264, 0xff, 0xff, 0xff) },
1658*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1265, 0xff, 0xff, 0xff) },
1659*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1266, 0xff, 0xff, 0xff) },
1660*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1267, 0xff, 0xff, 0xff) },
1661*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1268, 0xff, 0xff, 0xff) },
1662*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1269, 0xff, 0xff, 0xff) },
1663*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1270, 0xff, 0xff, 0xff),
1664*4882a593Smuzhiyun .driver_info = RSVD(5) },
1665*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1271, 0xff, 0xff, 0xff) },
1666*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1272, 0xff, 0xff, 0xff) },
1667*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1273, 0xff, 0xff, 0xff) },
1668*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1274, 0xff, 0xff, 0xff) },
1669*4882a593Smuzhiyun { USB_DEVICE(ZTE_VENDOR_ID, 0x1275), /* ZTE P685M */
1670*4882a593Smuzhiyun .driver_info = RSVD(3) | RSVD(4) },
1671*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1276, 0xff, 0xff, 0xff) },
1672*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1277, 0xff, 0xff, 0xff) },
1673*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1278, 0xff, 0xff, 0xff) },
1674*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1279, 0xff, 0xff, 0xff) },
1675*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1280, 0xff, 0xff, 0xff) },
1676*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1281, 0xff, 0xff, 0xff) },
1677*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1282, 0xff, 0xff, 0xff) },
1678*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1283, 0xff, 0xff, 0xff) },
1679*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1284, 0xff, 0xff, 0xff) },
1680*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1285, 0xff, 0xff, 0xff) },
1681*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1286, 0xff, 0xff, 0xff) },
1682*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1287, 0xff, 0xff, 0xff) },
1683*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1288, 0xff, 0xff, 0xff) },
1684*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1289, 0xff, 0xff, 0xff) },
1685*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1290, 0xff, 0xff, 0xff) },
1686*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1291, 0xff, 0xff, 0xff) },
1687*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1292, 0xff, 0xff, 0xff) },
1688*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1293, 0xff, 0xff, 0xff) },
1689*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1294, 0xff, 0xff, 0xff) },
1690*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1295, 0xff, 0xff, 0xff) },
1691*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1296, 0xff, 0xff, 0xff) },
1692*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1297, 0xff, 0xff, 0xff) },
1693*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1298, 0xff, 0xff, 0xff) },
1694*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1299, 0xff, 0xff, 0xff) },
1695*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1300, 0xff, 0xff, 0xff) },
1696*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1301, 0xff, 0xff, 0xff) },
1697*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1302, 0xff, 0xff, 0xff) },
1698*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1303, 0xff, 0xff, 0xff) },
1699*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1333, 0xff, 0xff, 0xff) },
1700*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1401, 0xff, 0xff, 0xff),
1701*4882a593Smuzhiyun .driver_info = RSVD(2) },
1702*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1402, 0xff, 0xff, 0xff),
1703*4882a593Smuzhiyun .driver_info = RSVD(2) },
1704*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1424, 0xff, 0xff, 0xff),
1705*4882a593Smuzhiyun .driver_info = RSVD(2) },
1706*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1425, 0xff, 0xff, 0xff),
1707*4882a593Smuzhiyun .driver_info = RSVD(2) },
1708*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff), /* ZTE MF91 */
1709*4882a593Smuzhiyun .driver_info = RSVD(2) },
1710*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1428, 0xff, 0xff, 0xff), /* Telewell TW-LTE 4G v2 */
1711*4882a593Smuzhiyun .driver_info = RSVD(2) },
1712*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x1476, 0xff) }, /* GosunCn ZTE WeLink ME3630 (ECM/NCM mode) */
1713*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1481, 0xff, 0x00, 0x00) }, /* ZTE MF871A */
1714*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1485, 0xff, 0xff, 0xff), /* ZTE MF286D */
1715*4882a593Smuzhiyun .driver_info = RSVD(5) },
1716*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) },
1717*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) },
1718*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) },
1719*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1545, 0xff, 0xff, 0xff) },
1720*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1546, 0xff, 0xff, 0xff) },
1721*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1547, 0xff, 0xff, 0xff) },
1722*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1565, 0xff, 0xff, 0xff) },
1723*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1566, 0xff, 0xff, 0xff) },
1724*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1567, 0xff, 0xff, 0xff) },
1725*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1589, 0xff, 0xff, 0xff) },
1726*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1590, 0xff, 0xff, 0xff) },
1727*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1591, 0xff, 0xff, 0xff) },
1728*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1592, 0xff, 0xff, 0xff) },
1729*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1594, 0xff, 0xff, 0xff) },
1730*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1596, 0xff, 0xff, 0xff) },
1731*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1598, 0xff, 0xff, 0xff) },
1732*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1600, 0xff, 0xff, 0xff) },
1733*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, 0xff, 0xff),
1734*4882a593Smuzhiyun .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | RSVD(4) },
1735*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) },
1736*4882a593Smuzhiyun
1737*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) }, /* ZTE CDMA products */
1738*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0027, 0xff, 0xff, 0xff) },
1739*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) },
1740*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0060, 0xff, 0xff, 0xff) },
1741*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) },
1742*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0073, 0xff, 0xff, 0xff) },
1743*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff),
1744*4882a593Smuzhiyun .driver_info = RSVD(1) },
1745*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0133, 0xff, 0xff, 0xff),
1746*4882a593Smuzhiyun .driver_info = RSVD(3) },
1747*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0141, 0xff, 0xff, 0xff),
1748*4882a593Smuzhiyun .driver_info = RSVD(5) },
1749*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0147, 0xff, 0xff, 0xff) },
1750*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0152, 0xff, 0xff, 0xff) },
1751*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0168, 0xff, 0xff, 0xff),
1752*4882a593Smuzhiyun .driver_info = RSVD(4) },
1753*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0170, 0xff, 0xff, 0xff) },
1754*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0176, 0xff, 0xff, 0xff),
1755*4882a593Smuzhiyun .driver_info = RSVD(3) },
1756*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0178, 0xff, 0xff, 0xff),
1757*4882a593Smuzhiyun .driver_info = RSVD(3) },
1758*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff42, 0xff, 0xff, 0xff) },
1759*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff43, 0xff, 0xff, 0xff) },
1760*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff44, 0xff, 0xff, 0xff) },
1761*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff45, 0xff, 0xff, 0xff) },
1762*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff46, 0xff, 0xff, 0xff) },
1763*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff47, 0xff, 0xff, 0xff) },
1764*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff48, 0xff, 0xff, 0xff) },
1765*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff49, 0xff, 0xff, 0xff) },
1766*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4a, 0xff, 0xff, 0xff) },
1767*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4b, 0xff, 0xff, 0xff) },
1768*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4c, 0xff, 0xff, 0xff) },
1769*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4d, 0xff, 0xff, 0xff) },
1770*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4e, 0xff, 0xff, 0xff) },
1771*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff4f, 0xff, 0xff, 0xff) },
1772*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff50, 0xff, 0xff, 0xff) },
1773*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff51, 0xff, 0xff, 0xff) },
1774*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff52, 0xff, 0xff, 0xff) },
1775*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff53, 0xff, 0xff, 0xff) },
1776*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff54, 0xff, 0xff, 0xff) },
1777*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff55, 0xff, 0xff, 0xff) },
1778*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff56, 0xff, 0xff, 0xff) },
1779*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff57, 0xff, 0xff, 0xff) },
1780*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff58, 0xff, 0xff, 0xff) },
1781*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff59, 0xff, 0xff, 0xff) },
1782*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5a, 0xff, 0xff, 0xff) },
1783*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5b, 0xff, 0xff, 0xff) },
1784*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5c, 0xff, 0xff, 0xff) },
1785*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5d, 0xff, 0xff, 0xff) },
1786*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5e, 0xff, 0xff, 0xff) },
1787*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff5f, 0xff, 0xff, 0xff) },
1788*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff60, 0xff, 0xff, 0xff) },
1789*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff61, 0xff, 0xff, 0xff) },
1790*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff62, 0xff, 0xff, 0xff) },
1791*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff63, 0xff, 0xff, 0xff) },
1792*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff64, 0xff, 0xff, 0xff) },
1793*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff65, 0xff, 0xff, 0xff) },
1794*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff66, 0xff, 0xff, 0xff) },
1795*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff67, 0xff, 0xff, 0xff) },
1796*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff68, 0xff, 0xff, 0xff) },
1797*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff69, 0xff, 0xff, 0xff) },
1798*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6a, 0xff, 0xff, 0xff) },
1799*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6b, 0xff, 0xff, 0xff) },
1800*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6c, 0xff, 0xff, 0xff) },
1801*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6d, 0xff, 0xff, 0xff) },
1802*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6e, 0xff, 0xff, 0xff) },
1803*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff6f, 0xff, 0xff, 0xff) },
1804*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff70, 0xff, 0xff, 0xff) },
1805*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff71, 0xff, 0xff, 0xff) },
1806*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff72, 0xff, 0xff, 0xff) },
1807*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff73, 0xff, 0xff, 0xff) },
1808*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff74, 0xff, 0xff, 0xff) },
1809*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff75, 0xff, 0xff, 0xff) },
1810*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff76, 0xff, 0xff, 0xff) },
1811*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff77, 0xff, 0xff, 0xff) },
1812*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff78, 0xff, 0xff, 0xff) },
1813*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff79, 0xff, 0xff, 0xff) },
1814*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7a, 0xff, 0xff, 0xff) },
1815*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7b, 0xff, 0xff, 0xff) },
1816*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7c, 0xff, 0xff, 0xff) },
1817*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7d, 0xff, 0xff, 0xff) },
1818*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7e, 0xff, 0xff, 0xff) },
1819*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff7f, 0xff, 0xff, 0xff) },
1820*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff80, 0xff, 0xff, 0xff) },
1821*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff81, 0xff, 0xff, 0xff) },
1822*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff82, 0xff, 0xff, 0xff) },
1823*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff83, 0xff, 0xff, 0xff) },
1824*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff84, 0xff, 0xff, 0xff) },
1825*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff85, 0xff, 0xff, 0xff) },
1826*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff86, 0xff, 0xff, 0xff) },
1827*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff87, 0xff, 0xff, 0xff) },
1828*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff88, 0xff, 0xff, 0xff) },
1829*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff89, 0xff, 0xff, 0xff) },
1830*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8a, 0xff, 0xff, 0xff) },
1831*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8b, 0xff, 0xff, 0xff) },
1832*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8c, 0xff, 0xff, 0xff) },
1833*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8d, 0xff, 0xff, 0xff) },
1834*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8e, 0xff, 0xff, 0xff) },
1835*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8f, 0xff, 0xff, 0xff) },
1836*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff90, 0xff, 0xff, 0xff) },
1837*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff91, 0xff, 0xff, 0xff) },
1838*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff92, 0xff, 0xff, 0xff) },
1839*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff93, 0xff, 0xff, 0xff) },
1840*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff94, 0xff, 0xff, 0xff) },
1841*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff9f, 0xff, 0xff, 0xff) },
1842*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa0, 0xff, 0xff, 0xff) },
1843*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa1, 0xff, 0xff, 0xff) },
1844*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa2, 0xff, 0xff, 0xff) },
1845*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa3, 0xff, 0xff, 0xff) },
1846*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa4, 0xff, 0xff, 0xff) },
1847*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa5, 0xff, 0xff, 0xff) },
1848*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa6, 0xff, 0xff, 0xff) },
1849*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa7, 0xff, 0xff, 0xff) },
1850*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa8, 0xff, 0xff, 0xff) },
1851*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffa9, 0xff, 0xff, 0xff) },
1852*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffaa, 0xff, 0xff, 0xff) },
1853*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffab, 0xff, 0xff, 0xff) },
1854*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffac, 0xff, 0xff, 0xff) },
1855*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffae, 0xff, 0xff, 0xff) },
1856*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffaf, 0xff, 0xff, 0xff) },
1857*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb0, 0xff, 0xff, 0xff) },
1858*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb1, 0xff, 0xff, 0xff) },
1859*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb2, 0xff, 0xff, 0xff) },
1860*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb3, 0xff, 0xff, 0xff) },
1861*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb4, 0xff, 0xff, 0xff) },
1862*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb5, 0xff, 0xff, 0xff) },
1863*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb6, 0xff, 0xff, 0xff) },
1864*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb7, 0xff, 0xff, 0xff) },
1865*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb8, 0xff, 0xff, 0xff) },
1866*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffb9, 0xff, 0xff, 0xff) },
1867*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffba, 0xff, 0xff, 0xff) },
1868*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbb, 0xff, 0xff, 0xff) },
1869*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbc, 0xff, 0xff, 0xff) },
1870*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbd, 0xff, 0xff, 0xff) },
1871*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbe, 0xff, 0xff, 0xff) },
1872*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffbf, 0xff, 0xff, 0xff) },
1873*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc0, 0xff, 0xff, 0xff) },
1874*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc1, 0xff, 0xff, 0xff) },
1875*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc2, 0xff, 0xff, 0xff) },
1876*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc3, 0xff, 0xff, 0xff) },
1877*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc4, 0xff, 0xff, 0xff) },
1878*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc5, 0xff, 0xff, 0xff) },
1879*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc6, 0xff, 0xff, 0xff) },
1880*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc7, 0xff, 0xff, 0xff) },
1881*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc8, 0xff, 0xff, 0xff) },
1882*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffc9, 0xff, 0xff, 0xff) },
1883*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffca, 0xff, 0xff, 0xff) },
1884*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffcb, 0xff, 0xff, 0xff) },
1885*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffcc, 0xff, 0xff, 0xff) },
1886*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffcd, 0xff, 0xff, 0xff) },
1887*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffce, 0xff, 0xff, 0xff) },
1888*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffcf, 0xff, 0xff, 0xff) },
1889*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd0, 0xff, 0xff, 0xff) },
1890*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd1, 0xff, 0xff, 0xff) },
1891*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd2, 0xff, 0xff, 0xff) },
1892*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd3, 0xff, 0xff, 0xff) },
1893*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd4, 0xff, 0xff, 0xff) },
1894*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffd5, 0xff, 0xff, 0xff) },
1895*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffe9, 0xff, 0xff, 0xff) },
1896*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffec, 0xff, 0xff, 0xff) },
1897*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffee, 0xff, 0xff, 0xff) },
1898*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfff6, 0xff, 0xff, 0xff) },
1899*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfff7, 0xff, 0xff, 0xff) },
1900*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfff8, 0xff, 0xff, 0xff) },
1901*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfff9, 0xff, 0xff, 0xff) },
1902*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfffb, 0xff, 0xff, 0xff) },
1903*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfffc, 0xff, 0xff, 0xff) },
1904*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MG880, 0xff, 0xff, 0xff) },
1905*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) },
1906*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) },
1907*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710T, 0xff, 0xff, 0xff) },
1908*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2718, 0xff, 0xff, 0xff),
1909*4882a593Smuzhiyun .driver_info = NCTRL(1) | NCTRL(2) | NCTRL(3) | NCTRL(4) },
1910*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AD3812, 0xff, 0xff, 0xff),
1911*4882a593Smuzhiyun .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) },
1912*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2716, 0xff, 0xff, 0xff),
1913*4882a593Smuzhiyun .driver_info = NCTRL(1) | NCTRL(2) | NCTRL(3) },
1914*4882a593Smuzhiyun { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_ME3620_L),
1915*4882a593Smuzhiyun .driver_info = RSVD(3) | RSVD(4) | RSVD(5) },
1916*4882a593Smuzhiyun { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_ME3620_MBIM),
1917*4882a593Smuzhiyun .driver_info = RSVD(2) | RSVD(3) | RSVD(4) },
1918*4882a593Smuzhiyun { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_ME3620_X),
1919*4882a593Smuzhiyun .driver_info = RSVD(3) | RSVD(4) | RSVD(5) },
1920*4882a593Smuzhiyun { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_ZM8620_X),
1921*4882a593Smuzhiyun .driver_info = RSVD(3) | RSVD(4) | RSVD(5) },
1922*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x01) },
1923*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x05) },
1924*4882a593Smuzhiyun { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x86, 0x10) },
1925*4882a593Smuzhiyun
1926*4882a593Smuzhiyun { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
1927*4882a593Smuzhiyun { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
1928*4882a593Smuzhiyun { USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5) }, /* Yes, ALINK_VENDOR_ID */
1929*4882a593Smuzhiyun { USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5A) },
1930*4882a593Smuzhiyun { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H21_4512) },
1931*4882a593Smuzhiyun { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H21_4523) },
1932*4882a593Smuzhiyun { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4515) },
1933*4882a593Smuzhiyun { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4518) },
1934*4882a593Smuzhiyun { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4519) },
1935*4882a593Smuzhiyun { USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_PRODUCT_G450) },
1936*4882a593Smuzhiyun { USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_PRODUCT_HSDPA_MINICARD ) }, /* Toshiba 3G HSDPA == Novatel Expedite EU870D MiniCard */
1937*4882a593Smuzhiyun { USB_DEVICE(ALINK_VENDOR_ID, 0x9000) },
1938*4882a593Smuzhiyun { USB_DEVICE(ALINK_VENDOR_ID, ALINK_PRODUCT_PH300) },
1939*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ALINK_VENDOR_ID, ALINK_PRODUCT_3GU, 0xff, 0xff, 0xff) },
1940*4882a593Smuzhiyun { USB_DEVICE(ALINK_VENDOR_ID, SIMCOM_PRODUCT_SIM7100E),
1941*4882a593Smuzhiyun .driver_info = RSVD(5) | RSVD(6) },
1942*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9003, 0xff) }, /* Simcom SIM7500/SIM7600 MBIM mode */
1943*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9011, 0xff), /* Simcom SIM7500/SIM7600 RNDIS mode */
1944*4882a593Smuzhiyun .driver_info = RSVD(7) },
1945*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9205, 0xff) }, /* Simcom SIM7070/SIM7080/SIM7090 AT+ECM mode */
1946*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9206, 0xff) }, /* Simcom SIM7070/SIM7080/SIM7090 AT-only mode */
1947*4882a593Smuzhiyun { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S_X200),
1948*4882a593Smuzhiyun .driver_info = NCTRL(0) | NCTRL(1) | RSVD(4) },
1949*4882a593Smuzhiyun { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X220_X500D),
1950*4882a593Smuzhiyun .driver_info = RSVD(6) },
1951*4882a593Smuzhiyun { USB_DEVICE(ALCATEL_VENDOR_ID, 0x0052),
1952*4882a593Smuzhiyun .driver_info = RSVD(6) },
1953*4882a593Smuzhiyun { USB_DEVICE(ALCATEL_VENDOR_ID, 0x00b6),
1954*4882a593Smuzhiyun .driver_info = RSVD(3) },
1955*4882a593Smuzhiyun { USB_DEVICE(ALCATEL_VENDOR_ID, 0x00b7),
1956*4882a593Smuzhiyun .driver_info = RSVD(5) },
1957*4882a593Smuzhiyun { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_L100V),
1958*4882a593Smuzhiyun .driver_info = RSVD(4) },
1959*4882a593Smuzhiyun { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_L800MA),
1960*4882a593Smuzhiyun .driver_info = RSVD(2) },
1961*4882a593Smuzhiyun { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) },
1962*4882a593Smuzhiyun { USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) },
1963*4882a593Smuzhiyun { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14),
1964*4882a593Smuzhiyun .driver_info = NCTRL(0) | NCTRL(1) },
1965*4882a593Smuzhiyun { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W100),
1966*4882a593Smuzhiyun .driver_info = NCTRL(1) | NCTRL(2) | RSVD(3) },
1967*4882a593Smuzhiyun {USB_DEVICE(LONGCHEER_VENDOR_ID, FUJISOFT_PRODUCT_FS040U),
1968*4882a593Smuzhiyun .driver_info = RSVD(3)},
1969*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, SPEEDUP_PRODUCT_SU9800, 0xff) },
1970*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9801, 0xff),
1971*4882a593Smuzhiyun .driver_info = RSVD(3) },
1972*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9803, 0xff),
1973*4882a593Smuzhiyun .driver_info = RSVD(4) },
1974*4882a593Smuzhiyun { USB_DEVICE(LONGCHEER_VENDOR_ID, ZOOM_PRODUCT_4597) },
1975*4882a593Smuzhiyun { USB_DEVICE(LONGCHEER_VENDOR_ID, IBALL_3_5G_CONNECT) },
1976*4882a593Smuzhiyun { USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_CE100) },
1977*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(HAIER_VENDOR_ID, HAIER_PRODUCT_CE81B, 0xff, 0xff, 0xff) },
1978*4882a593Smuzhiyun /* Pirelli */
1979*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_C100_1, 0xff) },
1980*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_C100_2, 0xff) },
1981*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1004, 0xff) },
1982*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1005, 0xff) },
1983*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1006, 0xff) },
1984*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1007, 0xff) },
1985*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1008, 0xff) },
1986*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1009, 0xff) },
1987*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100A, 0xff) },
1988*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100B, 0xff) },
1989*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100C, 0xff) },
1990*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100D, 0xff) },
1991*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100E, 0xff) },
1992*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_100F, 0xff) },
1993*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1011, 0xff) },
1994*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1012, 0xff) },
1995*4882a593Smuzhiyun /* Cinterion */
1996*4882a593Smuzhiyun { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_E) },
1997*4882a593Smuzhiyun { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) },
1998*4882a593Smuzhiyun { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8),
1999*4882a593Smuzhiyun .driver_info = RSVD(4) },
2000*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX, 0xff) },
2001*4882a593Smuzhiyun { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX),
2002*4882a593Smuzhiyun .driver_info = RSVD(4) },
2003*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8_2RMNET, 0xff),
2004*4882a593Smuzhiyun .driver_info = RSVD(4) | RSVD(5) },
2005*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8_AUDIO, 0xff),
2006*4882a593Smuzhiyun .driver_info = RSVD(4) },
2007*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_2RMNET, 0xff) },
2008*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_AUDIO, 0xff) },
2009*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_CLS8, 0xff),
2010*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(4) },
2011*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EXS82, 0xff) },
2012*4882a593Smuzhiyun { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) },
2013*4882a593Smuzhiyun { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) },
2014*4882a593Smuzhiyun { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDM) },
2015*4882a593Smuzhiyun { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDMNET) },
2016*4882a593Smuzhiyun { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, /* HC28 enumerates with Siemens or Cinterion VID depending on FW revision */
2017*4882a593Smuzhiyun { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) },
2018*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_MBIM, 0xff),
2019*4882a593Smuzhiyun .driver_info = RSVD(3)},
2020*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_RMNET, 0xff),
2021*4882a593Smuzhiyun .driver_info = RSVD(0)},
2022*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_2_MBIM, 0xff),
2023*4882a593Smuzhiyun .driver_info = RSVD(3)},
2024*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_2_RMNET, 0xff),
2025*4882a593Smuzhiyun .driver_info = RSVD(0)},
2026*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WA, 0xff),
2027*4882a593Smuzhiyun .driver_info = RSVD(3)},
2028*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WA_RMNET, 0xff),
2029*4882a593Smuzhiyun .driver_info = RSVD(0) },
2030*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WB, 0xff),
2031*4882a593Smuzhiyun .driver_info = RSVD(3)},
2032*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WB_RMNET, 0xff),
2033*4882a593Smuzhiyun .driver_info = RSVD(0) },
2034*4882a593Smuzhiyun { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100),
2035*4882a593Smuzhiyun .driver_info = RSVD(4) },
2036*4882a593Smuzhiyun { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD120),
2037*4882a593Smuzhiyun .driver_info = RSVD(4) },
2038*4882a593Smuzhiyun { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD140),
2039*4882a593Smuzhiyun .driver_info = RSVD(4) },
2040*4882a593Smuzhiyun { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD145) },
2041*4882a593Smuzhiyun { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD155),
2042*4882a593Smuzhiyun .driver_info = RSVD(6) },
2043*4882a593Smuzhiyun { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200),
2044*4882a593Smuzhiyun .driver_info = RSVD(6) },
2045*4882a593Smuzhiyun { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD160),
2046*4882a593Smuzhiyun .driver_info = RSVD(6) },
2047*4882a593Smuzhiyun { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD500),
2048*4882a593Smuzhiyun .driver_info = RSVD(4) },
2049*4882a593Smuzhiyun { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */
2050*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_GT_B3730, USB_CLASS_CDC_DATA, 0x00, 0x00) }, /* Samsung GT-B3730 LTE USB modem.*/
2051*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM600) },
2052*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM610) },
2053*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM500) },
2054*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM510) },
2055*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM800) },
2056*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM900) },
2057*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU818) },
2058*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU816) },
2059*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU828) },
2060*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU826) },
2061*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU518) },
2062*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU516) },
2063*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU528) },
2064*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU526) },
2065*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM600) },
2066*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM610) },
2067*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM500) },
2068*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM510) },
2069*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM800) },
2070*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWM900) },
2071*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU718) },
2072*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU716) },
2073*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU728) },
2074*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU726) },
2075*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU518) },
2076*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU516) },
2077*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU528) },
2078*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU526) },
2079*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM600) },
2080*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM610) },
2081*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM500) },
2082*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM510) },
2083*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM800) },
2084*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLM900) },
2085*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU718) },
2086*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU716) },
2087*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU728) },
2088*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU726) },
2089*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU518) },
2090*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU516) },
2091*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU528) },
2092*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU526) },
2093*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU881) },
2094*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU882) },
2095*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU581) },
2096*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU582) },
2097*4882a593Smuzhiyun { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU583) },
2098*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
2099*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
2100*4882a593Smuzhiyun { USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */
2101*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x00, 0x00) },
2102*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) },
2103*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) },
2104*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) }, /* MediaTek MT6276M modem & app port */
2105*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_1COM, 0x0a, 0x00, 0x00) },
2106*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x02, 0x01) },
2107*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x00, 0x00) },
2108*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x02, 0x01) },
2109*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x00, 0x00) },
2110*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_1COM, 0x02, 0x00, 0x00) },
2111*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_2COM, 0x02, 0x02, 0x01) },
2112*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_1COM, 0x0a, 0x00, 0x00) },
2113*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_2COM, 0x0a, 0x00, 0x00) },
2114*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_1COM, 0x0a, 0x00, 0x00) },
2115*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_2COM, 0x0a, 0x00, 0x00) },
2116*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7103_2COM, 0xff, 0x00, 0x00) },
2117*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7106_2COM, 0x02, 0x02, 0x01) },
2118*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) },
2119*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) },
2120*4882a593Smuzhiyun { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) },
2121*4882a593Smuzhiyun { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200),
2122*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(4) },
2123*4882a593Smuzhiyun { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) },
2124*4882a593Smuzhiyun { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) },
2125*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, TPLINK_PRODUCT_LTE, 0xff, 0x00, 0x00) }, /* TP-Link LTE Module */
2126*4882a593Smuzhiyun { USB_DEVICE(TPLINK_VENDOR_ID, TPLINK_PRODUCT_MA180),
2127*4882a593Smuzhiyun .driver_info = RSVD(4) },
2128*4882a593Smuzhiyun { USB_DEVICE(TPLINK_VENDOR_ID, 0x9000), /* TP-Link MA260 */
2129*4882a593Smuzhiyun .driver_info = RSVD(4) },
2130*4882a593Smuzhiyun { USB_DEVICE(CHANGHONG_VENDOR_ID, CHANGHONG_PRODUCT_CH690) },
2131*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
2132*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
2133*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
2134*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff), /* D-Link DWM-158 */
2135*4882a593Smuzhiyun .driver_info = RSVD(4) | RSVD(5) },
2136*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) }, /* D-Link DWM-157 C1 */
2137*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */
2138*4882a593Smuzhiyun .driver_info = RSVD(4) },
2139*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */
2140*4882a593Smuzhiyun .driver_info = RSVD(4) },
2141*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e3d, 0xff), /* D-Link DWM-222 A2 */
2142*4882a593Smuzhiyun .driver_info = RSVD(4) },
2143*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
2144*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
2145*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/A3 */
2146*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x1435, 0xd191, 0xff), /* Wistron Neweb D19Q1 */
2147*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(4) },
2148*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x1690, 0x7588, 0xff), /* ASKEY WWHC050 */
2149*4882a593Smuzhiyun .driver_info = RSVD(1) | RSVD(4) },
2150*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2031, 0xff), /* Olicard 600 */
2151*4882a593Smuzhiyun .driver_info = RSVD(4) },
2152*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2033, 0xff), /* BroadMobi BM806U */
2153*4882a593Smuzhiyun .driver_info = RSVD(4) },
2154*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2060, 0xff), /* BroadMobi BM818 */
2155*4882a593Smuzhiyun .driver_info = RSVD(4) },
2156*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2020, 0x4000, 0xff) }, /* OLICARD300 - MT6225 */
2157*4882a593Smuzhiyun { USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) },
2158*4882a593Smuzhiyun { USB_DEVICE(VIATELECOM_VENDOR_ID, VIATELECOM_PRODUCT_CDS7) },
2159*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD200, 0xff, 0xff, 0xff) },
2160*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_6802, 0xff, 0xff, 0xff) },
2161*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD300, 0xff, 0xff, 0xff) },
2162*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x421d, 0xff, 0xff, 0xff) }, /* HP lt2523 (Novatel E371) */
2163*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x10) }, /* HP lt4132 (Huawei ME906s-158) */
2164*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x12) },
2165*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x13) },
2166*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x14) },
2167*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x1b) },
2168*4882a593Smuzhiyun { USB_DEVICE(0x0489, 0xe0b4), /* Foxconn T77W968 */
2169*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
2170*4882a593Smuzhiyun { USB_DEVICE(0x0489, 0xe0b5), /* Foxconn T77W968 ESIM */
2171*4882a593Smuzhiyun .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
2172*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0db, 0xff), /* Foxconn T99W265 MBIM */
2173*4882a593Smuzhiyun .driver_info = RSVD(3) },
2174*4882a593Smuzhiyun { USB_DEVICE(0x1508, 0x1001), /* Fibocom NL668 (IOT version) */
2175*4882a593Smuzhiyun .driver_info = RSVD(4) | RSVD(5) | RSVD(6) },
2176*4882a593Smuzhiyun { USB_DEVICE(0x1782, 0x4d10) }, /* Fibocom L610 (AT mode) */
2177*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x1782, 0x4d11, 0xff) }, /* Fibocom L610 (ECM/RNDIS mode) */
2178*4882a593Smuzhiyun { USB_DEVICE(0x2cb7, 0x0104), /* Fibocom NL678 series */
2179*4882a593Smuzhiyun .driver_info = RSVD(4) | RSVD(5) },
2180*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0105, 0xff), /* Fibocom NL678 series */
2181*4882a593Smuzhiyun .driver_info = RSVD(6) },
2182*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0106, 0xff) }, /* Fibocom MA510 (ECM mode w/ diag intf.) */
2183*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x010a, 0xff) }, /* Fibocom MA510 (ECM mode) */
2184*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0xff, 0x30) }, /* Fibocom FG150 Diag */
2185*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0, 0) }, /* Fibocom FG150 AT */
2186*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0111, 0xff) }, /* Fibocom FM160 (MBIM mode) */
2187*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a0, 0xff) }, /* Fibocom NL668-AM/NL652-EU (laptop MBIM) */
2188*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a2, 0xff) }, /* Fibocom FM101-GL (laptop MBIM) */
2189*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a4, 0xff), /* Fibocom FM101-GL (laptop MBIM) */
2190*4882a593Smuzhiyun .driver_info = RSVD(4) },
2191*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */
2192*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) }, /* GosunCn GM500 RNDIS */
2193*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) }, /* GosunCn GM500 MBIM */
2194*4882a593Smuzhiyun { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1406, 0xff) }, /* GosunCn GM500 ECM/NCM */
2195*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(OPPO_VENDOR_ID, OPPO_PRODUCT_R11, 0xff, 0xff, 0x30) },
2196*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x30) },
2197*4882a593Smuzhiyun { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0, 0) },
2198*4882a593Smuzhiyun { } /* Terminating entry */
2199*4882a593Smuzhiyun };
2200*4882a593Smuzhiyun MODULE_DEVICE_TABLE(usb, option_ids);
2201*4882a593Smuzhiyun
2202*4882a593Smuzhiyun /* The card has three separate interfaces, which the serial driver
2203*4882a593Smuzhiyun * recognizes separately, thus num_port=1.
2204*4882a593Smuzhiyun */
2205*4882a593Smuzhiyun
2206*4882a593Smuzhiyun static struct usb_serial_driver option_1port_device = {
2207*4882a593Smuzhiyun .driver = {
2208*4882a593Smuzhiyun .owner = THIS_MODULE,
2209*4882a593Smuzhiyun .name = "option1",
2210*4882a593Smuzhiyun },
2211*4882a593Smuzhiyun .description = "GSM modem (1-port)",
2212*4882a593Smuzhiyun .id_table = option_ids,
2213*4882a593Smuzhiyun .num_ports = 1,
2214*4882a593Smuzhiyun .probe = option_probe,
2215*4882a593Smuzhiyun .open = usb_wwan_open,
2216*4882a593Smuzhiyun .close = usb_wwan_close,
2217*4882a593Smuzhiyun .dtr_rts = usb_wwan_dtr_rts,
2218*4882a593Smuzhiyun .write = usb_wwan_write,
2219*4882a593Smuzhiyun .write_room = usb_wwan_write_room,
2220*4882a593Smuzhiyun .chars_in_buffer = usb_wwan_chars_in_buffer,
2221*4882a593Smuzhiyun .tiocmget = usb_wwan_tiocmget,
2222*4882a593Smuzhiyun .tiocmset = usb_wwan_tiocmset,
2223*4882a593Smuzhiyun .get_serial = usb_wwan_get_serial_info,
2224*4882a593Smuzhiyun .set_serial = usb_wwan_set_serial_info,
2225*4882a593Smuzhiyun .attach = option_attach,
2226*4882a593Smuzhiyun .release = option_release,
2227*4882a593Smuzhiyun .port_probe = usb_wwan_port_probe,
2228*4882a593Smuzhiyun .port_remove = usb_wwan_port_remove,
2229*4882a593Smuzhiyun .read_int_callback = option_instat_callback,
2230*4882a593Smuzhiyun #ifdef CONFIG_PM
2231*4882a593Smuzhiyun .suspend = usb_wwan_suspend,
2232*4882a593Smuzhiyun .resume = usb_wwan_resume,
2233*4882a593Smuzhiyun .reset_resume = usb_wwan_resume,
2234*4882a593Smuzhiyun #endif
2235*4882a593Smuzhiyun };
2236*4882a593Smuzhiyun
2237*4882a593Smuzhiyun static struct usb_serial_driver * const serial_drivers[] = {
2238*4882a593Smuzhiyun &option_1port_device, NULL
2239*4882a593Smuzhiyun };
2240*4882a593Smuzhiyun
2241*4882a593Smuzhiyun module_usb_serial_driver(serial_drivers, option_ids);
2242*4882a593Smuzhiyun
iface_is_reserved(unsigned long device_flags,u8 ifnum)2243*4882a593Smuzhiyun static bool iface_is_reserved(unsigned long device_flags, u8 ifnum)
2244*4882a593Smuzhiyun {
2245*4882a593Smuzhiyun if (ifnum > FLAG_IFNUM_MAX)
2246*4882a593Smuzhiyun return false;
2247*4882a593Smuzhiyun
2248*4882a593Smuzhiyun return device_flags & RSVD(ifnum);
2249*4882a593Smuzhiyun }
2250*4882a593Smuzhiyun
option_probe(struct usb_serial * serial,const struct usb_device_id * id)2251*4882a593Smuzhiyun static int option_probe(struct usb_serial *serial,
2252*4882a593Smuzhiyun const struct usb_device_id *id)
2253*4882a593Smuzhiyun {
2254*4882a593Smuzhiyun struct usb_interface_descriptor *iface_desc =
2255*4882a593Smuzhiyun &serial->interface->cur_altsetting->desc;
2256*4882a593Smuzhiyun unsigned long device_flags = id->driver_info;
2257*4882a593Smuzhiyun
2258*4882a593Smuzhiyun /* Never bind to the CD-Rom emulation interface */
2259*4882a593Smuzhiyun if (iface_desc->bInterfaceClass == USB_CLASS_MASS_STORAGE)
2260*4882a593Smuzhiyun return -ENODEV;
2261*4882a593Smuzhiyun
2262*4882a593Smuzhiyun /*
2263*4882a593Smuzhiyun * Don't bind reserved interfaces (like network ones) which often have
2264*4882a593Smuzhiyun * the same class/subclass/protocol as the serial interfaces. Look at
2265*4882a593Smuzhiyun * the Windows driver .INF files for reserved interface numbers.
2266*4882a593Smuzhiyun */
2267*4882a593Smuzhiyun if (iface_is_reserved(device_flags, iface_desc->bInterfaceNumber))
2268*4882a593Smuzhiyun return -ENODEV;
2269*4882a593Smuzhiyun
2270*4882a593Smuzhiyun /*
2271*4882a593Smuzhiyun * Allow matching on bNumEndpoints for devices whose interface numbers
2272*4882a593Smuzhiyun * can change (e.g. Quectel EP06).
2273*4882a593Smuzhiyun */
2274*4882a593Smuzhiyun if (device_flags & NUMEP2 && iface_desc->bNumEndpoints != 2)
2275*4882a593Smuzhiyun return -ENODEV;
2276*4882a593Smuzhiyun
2277*4882a593Smuzhiyun /* Store the device flags so we can use them during attach. */
2278*4882a593Smuzhiyun usb_set_serial_data(serial, (void *)device_flags);
2279*4882a593Smuzhiyun
2280*4882a593Smuzhiyun return 0;
2281*4882a593Smuzhiyun }
2282*4882a593Smuzhiyun
iface_no_modem_control(unsigned long device_flags,u8 ifnum)2283*4882a593Smuzhiyun static bool iface_no_modem_control(unsigned long device_flags, u8 ifnum)
2284*4882a593Smuzhiyun {
2285*4882a593Smuzhiyun if (ifnum > FLAG_IFNUM_MAX)
2286*4882a593Smuzhiyun return false;
2287*4882a593Smuzhiyun
2288*4882a593Smuzhiyun return device_flags & NCTRL(ifnum);
2289*4882a593Smuzhiyun }
2290*4882a593Smuzhiyun
option_attach(struct usb_serial * serial)2291*4882a593Smuzhiyun static int option_attach(struct usb_serial *serial)
2292*4882a593Smuzhiyun {
2293*4882a593Smuzhiyun struct usb_interface_descriptor *iface_desc;
2294*4882a593Smuzhiyun struct usb_wwan_intf_private *data;
2295*4882a593Smuzhiyun unsigned long device_flags;
2296*4882a593Smuzhiyun
2297*4882a593Smuzhiyun data = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);
2298*4882a593Smuzhiyun if (!data)
2299*4882a593Smuzhiyun return -ENOMEM;
2300*4882a593Smuzhiyun
2301*4882a593Smuzhiyun /* Retrieve device flags stored at probe. */
2302*4882a593Smuzhiyun device_flags = (unsigned long)usb_get_serial_data(serial);
2303*4882a593Smuzhiyun
2304*4882a593Smuzhiyun iface_desc = &serial->interface->cur_altsetting->desc;
2305*4882a593Smuzhiyun
2306*4882a593Smuzhiyun if (!iface_no_modem_control(device_flags, iface_desc->bInterfaceNumber))
2307*4882a593Smuzhiyun data->use_send_setup = 1;
2308*4882a593Smuzhiyun
2309*4882a593Smuzhiyun if (device_flags & ZLP)
2310*4882a593Smuzhiyun data->use_zlp = 1;
2311*4882a593Smuzhiyun
2312*4882a593Smuzhiyun spin_lock_init(&data->susp_lock);
2313*4882a593Smuzhiyun
2314*4882a593Smuzhiyun usb_set_serial_data(serial, data);
2315*4882a593Smuzhiyun
2316*4882a593Smuzhiyun return 0;
2317*4882a593Smuzhiyun }
2318*4882a593Smuzhiyun
option_release(struct usb_serial * serial)2319*4882a593Smuzhiyun static void option_release(struct usb_serial *serial)
2320*4882a593Smuzhiyun {
2321*4882a593Smuzhiyun struct usb_wwan_intf_private *intfdata = usb_get_serial_data(serial);
2322*4882a593Smuzhiyun
2323*4882a593Smuzhiyun kfree(intfdata);
2324*4882a593Smuzhiyun }
2325*4882a593Smuzhiyun
option_instat_callback(struct urb * urb)2326*4882a593Smuzhiyun static void option_instat_callback(struct urb *urb)
2327*4882a593Smuzhiyun {
2328*4882a593Smuzhiyun int err;
2329*4882a593Smuzhiyun int status = urb->status;
2330*4882a593Smuzhiyun struct usb_serial_port *port = urb->context;
2331*4882a593Smuzhiyun struct device *dev = &port->dev;
2332*4882a593Smuzhiyun struct usb_wwan_port_private *portdata =
2333*4882a593Smuzhiyun usb_get_serial_port_data(port);
2334*4882a593Smuzhiyun
2335*4882a593Smuzhiyun dev_dbg(dev, "%s: urb %p port %p has data %p\n", __func__, urb, port, portdata);
2336*4882a593Smuzhiyun
2337*4882a593Smuzhiyun if (status == 0) {
2338*4882a593Smuzhiyun struct usb_ctrlrequest *req_pkt = urb->transfer_buffer;
2339*4882a593Smuzhiyun
2340*4882a593Smuzhiyun if (!req_pkt) {
2341*4882a593Smuzhiyun dev_dbg(dev, "%s: NULL req_pkt\n", __func__);
2342*4882a593Smuzhiyun return;
2343*4882a593Smuzhiyun }
2344*4882a593Smuzhiyun if ((req_pkt->bRequestType == 0xA1) &&
2345*4882a593Smuzhiyun (req_pkt->bRequest == 0x20)) {
2346*4882a593Smuzhiyun int old_dcd_state;
2347*4882a593Smuzhiyun unsigned char signals = *((unsigned char *)
2348*4882a593Smuzhiyun urb->transfer_buffer +
2349*4882a593Smuzhiyun sizeof(struct usb_ctrlrequest));
2350*4882a593Smuzhiyun
2351*4882a593Smuzhiyun dev_dbg(dev, "%s: signal x%x\n", __func__, signals);
2352*4882a593Smuzhiyun
2353*4882a593Smuzhiyun old_dcd_state = portdata->dcd_state;
2354*4882a593Smuzhiyun portdata->cts_state = 1;
2355*4882a593Smuzhiyun portdata->dcd_state = ((signals & 0x01) ? 1 : 0);
2356*4882a593Smuzhiyun portdata->dsr_state = ((signals & 0x02) ? 1 : 0);
2357*4882a593Smuzhiyun portdata->ri_state = ((signals & 0x08) ? 1 : 0);
2358*4882a593Smuzhiyun
2359*4882a593Smuzhiyun if (old_dcd_state && !portdata->dcd_state)
2360*4882a593Smuzhiyun tty_port_tty_hangup(&port->port, true);
2361*4882a593Smuzhiyun } else {
2362*4882a593Smuzhiyun dev_dbg(dev, "%s: type %x req %x\n", __func__,
2363*4882a593Smuzhiyun req_pkt->bRequestType, req_pkt->bRequest);
2364*4882a593Smuzhiyun }
2365*4882a593Smuzhiyun } else if (status == -ENOENT || status == -ESHUTDOWN) {
2366*4882a593Smuzhiyun dev_dbg(dev, "%s: urb stopped: %d\n", __func__, status);
2367*4882a593Smuzhiyun } else
2368*4882a593Smuzhiyun dev_dbg(dev, "%s: error %d\n", __func__, status);
2369*4882a593Smuzhiyun
2370*4882a593Smuzhiyun /* Resubmit urb so we continue receiving IRQ data */
2371*4882a593Smuzhiyun if (status != -ESHUTDOWN && status != -ENOENT) {
2372*4882a593Smuzhiyun usb_mark_last_busy(port->serial->dev);
2373*4882a593Smuzhiyun err = usb_submit_urb(urb, GFP_ATOMIC);
2374*4882a593Smuzhiyun if (err)
2375*4882a593Smuzhiyun dev_dbg(dev, "%s: resubmit intr urb failed. (%d)\n",
2376*4882a593Smuzhiyun __func__, err);
2377*4882a593Smuzhiyun }
2378*4882a593Smuzhiyun }
2379*4882a593Smuzhiyun
2380*4882a593Smuzhiyun MODULE_AUTHOR(DRIVER_AUTHOR);
2381*4882a593Smuzhiyun MODULE_DESCRIPTION(DRIVER_DESC);
2382*4882a593Smuzhiyun MODULE_LICENSE("GPL v2");
2383