aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfangxiaozhi <huananhu@huawei.com>2008-10-15 02:15:36 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2008-10-22 13:05:28 -0400
commit1460e5e44cc5ecad7704f63b10dcb3a59d0e008b (patch)
tree3d7e5beae8df60dc2c29305e7c3e103c87f2da07
parentbfd8408d68975759aba1b466af6f5388d7adb836 (diff)
USB: support Huawei data card product IDs
In this patch, we want to do one thing: add more Huawei product IDs into the USB driver. Then it can support more Huawei data card devices. So to declare the unusual device for new Huawei data card devices in unusual_devs.h and to declare more new product IDs in option.c. To modify the data value and length in the function of usb_stor_huawei_e220_init in initializers.c That's because based on the USB standard, while sending SET_FETURE_D to the device, it requires the corresponding data to be zero, and its sending length also must be zero. In our old solution, it can be compatible with our WCDMA data card devices, but can not support our CDMA data card devices. But in this new solution, it can be compatible with all of our data card devices. Signed-off-by: fangxiaozhi <huananhu@huawei.com> Signed-off-by: Phil Dibowitz <phil@ipom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/usb/serial/option.c94
-rw-r--r--drivers/usb/storage/initializers.c3
-rw-r--r--drivers/usb/storage/unusual_devs.h273
3 files changed, 349 insertions, 21 deletions
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 5a9a1959ae7b..bd07eaa300b9 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -95,11 +95,20 @@ static int option_send_setup(struct tty_struct *tty, struct usb_serial_port *po
95#define HUAWEI_PRODUCT_E220 0x1003 95#define HUAWEI_PRODUCT_E220 0x1003
96#define HUAWEI_PRODUCT_E220BIS 0x1004 96#define HUAWEI_PRODUCT_E220BIS 0x1004
97#define HUAWEI_PRODUCT_E1401 0x1401 97#define HUAWEI_PRODUCT_E1401 0x1401
98#define HUAWEI_PRODUCT_E1402 0x1402
98#define HUAWEI_PRODUCT_E1403 0x1403 99#define HUAWEI_PRODUCT_E1403 0x1403
100#define HUAWEI_PRODUCT_E1404 0x1404
99#define HUAWEI_PRODUCT_E1405 0x1405 101#define HUAWEI_PRODUCT_E1405 0x1405
100#define HUAWEI_PRODUCT_E1406 0x1406 102#define HUAWEI_PRODUCT_E1406 0x1406
103#define HUAWEI_PRODUCT_E1407 0x1407
101#define HUAWEI_PRODUCT_E1408 0x1408 104#define HUAWEI_PRODUCT_E1408 0x1408
102#define HUAWEI_PRODUCT_E1409 0x1409 105#define HUAWEI_PRODUCT_E1409 0x1409
106#define HUAWEI_PRODUCT_E140A 0x140A
107#define HUAWEI_PRODUCT_E140B 0x140B
108#define HUAWEI_PRODUCT_E140C 0x140C
109#define HUAWEI_PRODUCT_E140D 0x140D
110#define HUAWEI_PRODUCT_E140E 0x140E
111#define HUAWEI_PRODUCT_E140F 0x140F
103#define HUAWEI_PRODUCT_E1410 0x1410 112#define HUAWEI_PRODUCT_E1410 0x1410
104#define HUAWEI_PRODUCT_E1411 0x1411 113#define HUAWEI_PRODUCT_E1411 0x1411
105#define HUAWEI_PRODUCT_E1412 0x1412 114#define HUAWEI_PRODUCT_E1412 0x1412
@@ -110,6 +119,44 @@ static int option_send_setup(struct tty_struct *tty, struct usb_serial_port *po
110#define HUAWEI_PRODUCT_E1417 0x1417 119#define HUAWEI_PRODUCT_E1417 0x1417
111#define HUAWEI_PRODUCT_E1418 0x1418 120#define HUAWEI_PRODUCT_E1418 0x1418
112#define HUAWEI_PRODUCT_E1419 0x1419 121#define HUAWEI_PRODUCT_E1419 0x1419
122#define HUAWEI_PRODUCT_E141A 0x141A
123#define HUAWEI_PRODUCT_E141B 0x141B
124#define HUAWEI_PRODUCT_E141C 0x141C
125#define HUAWEI_PRODUCT_E141D 0x141D
126#define HUAWEI_PRODUCT_E141E 0x141E
127#define HUAWEI_PRODUCT_E141F 0x141F
128#define HUAWEI_PRODUCT_E1420 0x1420
129#define HUAWEI_PRODUCT_E1421 0x1421
130#define HUAWEI_PRODUCT_E1422 0x1422
131#define HUAWEI_PRODUCT_E1423 0x1423
132#define HUAWEI_PRODUCT_E1424 0x1424
133#define HUAWEI_PRODUCT_E1425 0x1425
134#define HUAWEI_PRODUCT_E1426 0x1426
135#define HUAWEI_PRODUCT_E1427 0x1427
136#define HUAWEI_PRODUCT_E1428 0x1428
137#define HUAWEI_PRODUCT_E1429 0x1429
138#define HUAWEI_PRODUCT_E142A 0x142A
139#define HUAWEI_PRODUCT_E142B 0x142B
140#define HUAWEI_PRODUCT_E142C 0x142C
141#define HUAWEI_PRODUCT_E142D 0x142D
142#define HUAWEI_PRODUCT_E142E 0x142E
143#define HUAWEI_PRODUCT_E142F 0x142F
144#define HUAWEI_PRODUCT_E1430 0x1430
145#define HUAWEI_PRODUCT_E1431 0x1431
146#define HUAWEI_PRODUCT_E1432 0x1432
147#define HUAWEI_PRODUCT_E1433 0x1433
148#define HUAWEI_PRODUCT_E1434 0x1434
149#define HUAWEI_PRODUCT_E1435 0x1435
150#define HUAWEI_PRODUCT_E1436 0x1436
151#define HUAWEI_PRODUCT_E1437 0x1437
152#define HUAWEI_PRODUCT_E1438 0x1438
153#define HUAWEI_PRODUCT_E1439 0x1439
154#define HUAWEI_PRODUCT_E143A 0x143A
155#define HUAWEI_PRODUCT_E143B 0x143B
156#define HUAWEI_PRODUCT_E143C 0x143C
157#define HUAWEI_PRODUCT_E143D 0x143D
158#define HUAWEI_PRODUCT_E143E 0x143E
159#define HUAWEI_PRODUCT_E143F 0x143F
113 160
114#define NOVATELWIRELESS_VENDOR_ID 0x1410 161#define NOVATELWIRELESS_VENDOR_ID 0x1410
115 162
@@ -249,11 +296,20 @@ static struct usb_device_id option_ids[] = {
249 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, 296 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) },
250 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, 297 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },
251 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 0xff, 0xff, 0xff) }, 298 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 0xff, 0xff, 0xff) },
299 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1402, 0xff, 0xff, 0xff) },
252 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403, 0xff, 0xff, 0xff) }, 300 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403, 0xff, 0xff, 0xff) },
301 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1404, 0xff, 0xff, 0xff) },
253 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405, 0xff, 0xff, 0xff) }, 302 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405, 0xff, 0xff, 0xff) },
254 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406, 0xff, 0xff, 0xff) }, 303 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406, 0xff, 0xff, 0xff) },
304 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1407, 0xff, 0xff, 0xff) },
255 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408, 0xff, 0xff, 0xff) }, 305 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408, 0xff, 0xff, 0xff) },
256 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409, 0xff, 0xff, 0xff) }, 306 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409, 0xff, 0xff, 0xff) },
307 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140A, 0xff, 0xff, 0xff) },
308 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140B, 0xff, 0xff, 0xff) },
309 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140C, 0xff, 0xff, 0xff) },
310 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140D, 0xff, 0xff, 0xff) },
311 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140E, 0xff, 0xff, 0xff) },
312 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140F, 0xff, 0xff, 0xff) },
257 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410, 0xff, 0xff, 0xff) }, 313 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410, 0xff, 0xff, 0xff) },
258 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411, 0xff, 0xff, 0xff) }, 314 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411, 0xff, 0xff, 0xff) },
259 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412, 0xff, 0xff, 0xff) }, 315 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412, 0xff, 0xff, 0xff) },
@@ -264,6 +320,44 @@ static struct usb_device_id option_ids[] = {
264 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417, 0xff, 0xff, 0xff) }, 320 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417, 0xff, 0xff, 0xff) },
265 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418, 0xff, 0xff, 0xff) }, 321 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418, 0xff, 0xff, 0xff) },
266 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419, 0xff, 0xff, 0xff) }, 322 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419, 0xff, 0xff, 0xff) },
323 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141A, 0xff, 0xff, 0xff) },
324 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141B, 0xff, 0xff, 0xff) },
325 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141C, 0xff, 0xff, 0xff) },
326 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141D, 0xff, 0xff, 0xff) },
327 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141E, 0xff, 0xff, 0xff) },
328 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141F, 0xff, 0xff, 0xff) },
329 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1420, 0xff, 0xff, 0xff) },
330 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1421, 0xff, 0xff, 0xff) },
331 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1422, 0xff, 0xff, 0xff) },
332 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1423, 0xff, 0xff, 0xff) },
333 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1424, 0xff, 0xff, 0xff) },
334 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1425, 0xff, 0xff, 0xff) },
335 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1426, 0xff, 0xff, 0xff) },
336 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1427, 0xff, 0xff, 0xff) },
337 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1428, 0xff, 0xff, 0xff) },
338 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1429, 0xff, 0xff, 0xff) },
339 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142A, 0xff, 0xff, 0xff) },
340 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142B, 0xff, 0xff, 0xff) },
341 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142C, 0xff, 0xff, 0xff) },
342 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142D, 0xff, 0xff, 0xff) },
343 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142E, 0xff, 0xff, 0xff) },
344 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142F, 0xff, 0xff, 0xff) },
345 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1430, 0xff, 0xff, 0xff) },
346 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1431, 0xff, 0xff, 0xff) },
347 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1432, 0xff, 0xff, 0xff) },
348 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1433, 0xff, 0xff, 0xff) },
349 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1434, 0xff, 0xff, 0xff) },
350 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1435, 0xff, 0xff, 0xff) },
351 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1436, 0xff, 0xff, 0xff) },
352 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1437, 0xff, 0xff, 0xff) },
353 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1438, 0xff, 0xff, 0xff) },
354 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1439, 0xff, 0xff, 0xff) },
355 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143A, 0xff, 0xff, 0xff) },
356 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143B, 0xff, 0xff, 0xff) },
357 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143C, 0xff, 0xff, 0xff) },
358 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) },
359 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) },
360 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) },
267 { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) }, 361 { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) },
268 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ 362 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */
269 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */ 363 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */
diff --git a/drivers/usb/storage/initializers.c b/drivers/usb/storage/initializers.c
index 4995bb595aef..2dd9bd4bff56 100644
--- a/drivers/usb/storage/initializers.c
+++ b/drivers/usb/storage/initializers.c
@@ -95,11 +95,10 @@ int usb_stor_huawei_e220_init(struct us_data *us)
95{ 95{
96 int result; 96 int result;
97 97
98 us->iobuf[0] = 0x1;
99 result = usb_stor_control_msg(us, us->send_ctrl_pipe, 98 result = usb_stor_control_msg(us, us->send_ctrl_pipe,
100 USB_REQ_SET_FEATURE, 99 USB_REQ_SET_FEATURE,
101 USB_TYPE_STANDARD | USB_RECIP_DEVICE, 100 USB_TYPE_STANDARD | USB_RECIP_DEVICE,
102 0x01, 0x0, us->iobuf, 0x1, 1000); 101 0x01, 0x0, NULL, 0x0, 1000);
103 US_DEBUGP("usb_control_msg performing result is %d\n", result); 102 US_DEBUGP("usb_control_msg performing result is %d\n", result);
104 return (result ? 0 : -1); 103 return (result ? 0 : -1);
105} 104}
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index 061df9b46138..d0de1feee91e 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1628,97 +1628,332 @@ UNUSUAL_DEV( 0x1210, 0x0003, 0x0100, 0x0100,
1628/* Reported by fangxiaozhi <huananhu@huawei.com> 1628/* Reported by fangxiaozhi <huananhu@huawei.com>
1629 * This brings the HUAWEI data card devices into multi-port mode 1629 * This brings the HUAWEI data card devices into multi-port mode
1630 */ 1630 */
1631UNUSUAL_DEV( 0x12d1, 0x1001, 0x0000, 0x0000, 1631UNUSUAL_DEV( 0x12d1, 0x1001, 0x0000, 0x0000,
1632 "HUAWEI MOBILE", 1632 "HUAWEI MOBILE",
1633 "Mass Storage", 1633 "Mass Storage",
1634 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1634 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1635 0), 1635 0),
1636UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000, 1636UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000,
1637 "HUAWEI MOBILE", 1637 "HUAWEI MOBILE",
1638 "Mass Storage", 1638 "Mass Storage",
1639 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1639 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1640 0), 1640 0),
1641UNUSUAL_DEV( 0x12d1, 0x1004, 0x0000, 0x0000, 1641UNUSUAL_DEV( 0x12d1, 0x1004, 0x0000, 0x0000,
1642 "HUAWEI MOBILE", 1642 "HUAWEI MOBILE",
1643 "Mass Storage", 1643 "Mass Storage",
1644 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1644 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1645 0), 1645 0),
1646UNUSUAL_DEV( 0x12d1, 0x1401, 0x0000, 0x0000, 1646UNUSUAL_DEV( 0x12d1, 0x1401, 0x0000, 0x0000,
1647 "HUAWEI MOBILE", 1647 "HUAWEI MOBILE",
1648 "Mass Storage", 1648 "Mass Storage",
1649 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1649 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1650 0), 1650 0),
1651UNUSUAL_DEV( 0x12d1, 0x1403, 0x0000, 0x0000, 1651UNUSUAL_DEV( 0x12d1, 0x1402, 0x0000, 0x0000,
1652 "HUAWEI MOBILE", 1652 "HUAWEI MOBILE",
1653 "Mass Storage", 1653 "Mass Storage",
1654 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1654 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1655 0), 1655 0),
1656UNUSUAL_DEV( 0x12d1, 0x1405, 0x0000, 0x0000, 1656UNUSUAL_DEV( 0x12d1, 0x1403, 0x0000, 0x0000,
1657 "HUAWEI MOBILE", 1657 "HUAWEI MOBILE",
1658 "Mass Storage", 1658 "Mass Storage",
1659 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1659 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1660 0), 1660 0),
1661UNUSUAL_DEV( 0x12d1, 0x1406, 0x0000, 0x0000, 1661UNUSUAL_DEV( 0x12d1, 0x1404, 0x0000, 0x0000,
1662 "HUAWEI MOBILE", 1662 "HUAWEI MOBILE",
1663 "Mass Storage", 1663 "Mass Storage",
1664 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1664 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1665 0), 1665 0),
1666UNUSUAL_DEV( 0x12d1, 0x1408, 0x0000, 0x0000, 1666UNUSUAL_DEV( 0x12d1, 0x1405, 0x0000, 0x0000,
1667 "HUAWEI MOBILE", 1667 "HUAWEI MOBILE",
1668 "Mass Storage", 1668 "Mass Storage",
1669 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1669 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1670 0), 1670 0),
1671UNUSUAL_DEV( 0x12d1, 0x1409, 0x0000, 0x0000, 1671UNUSUAL_DEV( 0x12d1, 0x1406, 0x0000, 0x0000,
1672 "HUAWEI MOBILE", 1672 "HUAWEI MOBILE",
1673 "Mass Storage", 1673 "Mass Storage",
1674 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1674 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1675 0), 1675 0),
1676UNUSUAL_DEV( 0x12d1, 0x1410, 0x0000, 0x0000, 1676UNUSUAL_DEV( 0x12d1, 0x1407, 0x0000, 0x0000,
1677 "HUAWEI MOBILE", 1677 "HUAWEI MOBILE",
1678 "Mass Storage", 1678 "Mass Storage",
1679 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1679 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1680 0), 1680 0),
1681UNUSUAL_DEV( 0x12d1, 0x1411, 0x0000, 0x0000, 1681UNUSUAL_DEV( 0x12d1, 0x1408, 0x0000, 0x0000,
1682 "HUAWEI MOBILE", 1682 "HUAWEI MOBILE",
1683 "Mass Storage", 1683 "Mass Storage",
1684 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1684 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1685 0), 1685 0),
1686UNUSUAL_DEV( 0x12d1, 0x1412, 0x0000, 0x0000, 1686UNUSUAL_DEV( 0x12d1, 0x1409, 0x0000, 0x0000,
1687 "HUAWEI MOBILE", 1687 "HUAWEI MOBILE",
1688 "Mass Storage", 1688 "Mass Storage",
1689 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1689 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1690 0), 1690 0),
1691UNUSUAL_DEV( 0x12d1, 0x1413, 0x0000, 0x0000, 1691UNUSUAL_DEV( 0x12d1, 0x140A, 0x0000, 0x0000,
1692 "HUAWEI MOBILE", 1692 "HUAWEI MOBILE",
1693 "Mass Storage", 1693 "Mass Storage",
1694 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1694 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1695 0), 1695 0),
1696UNUSUAL_DEV( 0x12d1, 0x1414, 0x0000, 0x0000, 1696UNUSUAL_DEV( 0x12d1, 0x140B, 0x0000, 0x0000,
1697 "HUAWEI MOBILE", 1697 "HUAWEI MOBILE",
1698 "Mass Storage", 1698 "Mass Storage",
1699 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1699 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1700 0), 1700 0),
1701UNUSUAL_DEV( 0x12d1, 0x1415, 0x0000, 0x0000, 1701UNUSUAL_DEV( 0x12d1, 0x140C, 0x0000, 0x0000,
1702 "HUAWEI MOBILE", 1702 "HUAWEI MOBILE",
1703 "Mass Storage", 1703 "Mass Storage",
1704 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1704 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1705 0), 1705 0),
1706UNUSUAL_DEV( 0x12d1, 0x1416, 0x0000, 0x0000, 1706UNUSUAL_DEV( 0x12d1, 0x140D, 0x0000, 0x0000,
1707 "HUAWEI MOBILE", 1707 "HUAWEI MOBILE",
1708 "Mass Storage", 1708 "Mass Storage",
1709 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1709 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1710 0), 1710 0),
1711UNUSUAL_DEV( 0x12d1, 0x1417, 0x0000, 0x0000, 1711UNUSUAL_DEV( 0x12d1, 0x140E, 0x0000, 0x0000,
1712 "HUAWEI MOBILE", 1712 "HUAWEI MOBILE",
1713 "Mass Storage", 1713 "Mass Storage",
1714 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1714 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1715 0), 1715 0),
1716UNUSUAL_DEV( 0x12d1, 0x1418, 0x0000, 0x0000, 1716UNUSUAL_DEV( 0x12d1, 0x140F, 0x0000, 0x0000,
1717 "HUAWEI MOBILE", 1717 "HUAWEI MOBILE",
1718 "Mass Storage", 1718 "Mass Storage",
1719 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1719 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1720 0), 1720 0),
1721UNUSUAL_DEV( 0x12d1, 0x1419, 0x0000, 0x0000, 1721UNUSUAL_DEV( 0x12d1, 0x1410, 0x0000, 0x0000,
1722 "HUAWEI MOBILE",
1723 "Mass Storage",
1724 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1725 0),
1726UNUSUAL_DEV( 0x12d1, 0x1411, 0x0000, 0x0000,
1727 "HUAWEI MOBILE",
1728 "Mass Storage",
1729 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1730 0),
1731UNUSUAL_DEV( 0x12d1, 0x1412, 0x0000, 0x0000,
1732 "HUAWEI MOBILE",
1733 "Mass Storage",
1734 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1735 0),
1736UNUSUAL_DEV( 0x12d1, 0x1413, 0x0000, 0x0000,
1737 "HUAWEI MOBILE",
1738 "Mass Storage",
1739 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1740 0),
1741UNUSUAL_DEV( 0x12d1, 0x1414, 0x0000, 0x0000,
1742 "HUAWEI MOBILE",
1743 "Mass Storage",
1744 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1745 0),
1746UNUSUAL_DEV( 0x12d1, 0x1415, 0x0000, 0x0000,
1747 "HUAWEI MOBILE",
1748 "Mass Storage",
1749 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1750 0),
1751UNUSUAL_DEV( 0x12d1, 0x1416, 0x0000, 0x0000,
1752 "HUAWEI MOBILE",
1753 "Mass Storage",
1754 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1755 0),
1756UNUSUAL_DEV( 0x12d1, 0x1417, 0x0000, 0x0000,
1757 "HUAWEI MOBILE",
1758 "Mass Storage",
1759 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1760 0),
1761UNUSUAL_DEV( 0x12d1, 0x1418, 0x0000, 0x0000,
1762 "HUAWEI MOBILE",
1763 "Mass Storage",
1764 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1765 0),
1766UNUSUAL_DEV( 0x12d1, 0x1419, 0x0000, 0x0000,
1767 "HUAWEI MOBILE",
1768 "Mass Storage",
1769 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1770 0),
1771UNUSUAL_DEV( 0x12d1, 0x141A, 0x0000, 0x0000,
1772 "HUAWEI MOBILE",
1773 "Mass Storage",
1774 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1775 0),
1776UNUSUAL_DEV( 0x12d1, 0x141B, 0x0000, 0x0000,
1777 "HUAWEI MOBILE",
1778 "Mass Storage",
1779 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1780 0),
1781UNUSUAL_DEV( 0x12d1, 0x141C, 0x0000, 0x0000,
1782 "HUAWEI MOBILE",
1783 "Mass Storage",
1784 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1785 0),
1786UNUSUAL_DEV( 0x12d1, 0x141D, 0x0000, 0x0000,
1787 "HUAWEI MOBILE",
1788 "Mass Storage",
1789 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1790 0),
1791UNUSUAL_DEV( 0x12d1, 0x141E, 0x0000, 0x0000,
1792 "HUAWEI MOBILE",
1793 "Mass Storage",
1794 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1795 0),
1796UNUSUAL_DEV( 0x12d1, 0x141F, 0x0000, 0x0000,
1797 "HUAWEI MOBILE",
1798 "Mass Storage",
1799 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1800 0),
1801UNUSUAL_DEV( 0x12d1, 0x1420, 0x0000, 0x0000,
1802 "HUAWEI MOBILE",
1803 "Mass Storage",
1804 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1805 0),
1806UNUSUAL_DEV( 0x12d1, 0x1421, 0x0000, 0x0000,
1807 "HUAWEI MOBILE",
1808 "Mass Storage",
1809 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1810 0),
1811UNUSUAL_DEV( 0x12d1, 0x1422, 0x0000, 0x0000,
1812 "HUAWEI MOBILE",
1813 "Mass Storage",
1814 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1815 0),
1816UNUSUAL_DEV( 0x12d1, 0x1423, 0x0000, 0x0000,
1817 "HUAWEI MOBILE",
1818 "Mass Storage",
1819 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1820 0),
1821UNUSUAL_DEV( 0x12d1, 0x1424, 0x0000, 0x0000,
1822 "HUAWEI MOBILE",
1823 "Mass Storage",
1824 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1825 0),
1826UNUSUAL_DEV( 0x12d1, 0x1425, 0x0000, 0x0000,
1827 "HUAWEI MOBILE",
1828 "Mass Storage",
1829 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1830 0),
1831UNUSUAL_DEV( 0x12d1, 0x1426, 0x0000, 0x0000,
1832 "HUAWEI MOBILE",
1833 "Mass Storage",
1834 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1835 0),
1836UNUSUAL_DEV( 0x12d1, 0x1427, 0x0000, 0x0000,
1837 "HUAWEI MOBILE",
1838 "Mass Storage",
1839 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1840 0),
1841UNUSUAL_DEV( 0x12d1, 0x1428, 0x0000, 0x0000,
1842 "HUAWEI MOBILE",
1843 "Mass Storage",
1844 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1845 0),
1846UNUSUAL_DEV( 0x12d1, 0x1429, 0x0000, 0x0000,
1847 "HUAWEI MOBILE",
1848 "Mass Storage",
1849 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1850 0),
1851UNUSUAL_DEV( 0x12d1, 0x142A, 0x0000, 0x0000,
1852 "HUAWEI MOBILE",
1853 "Mass Storage",
1854 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1855 0),
1856UNUSUAL_DEV( 0x12d1, 0x142B, 0x0000, 0x0000,
1857 "HUAWEI MOBILE",
1858 "Mass Storage",
1859 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1860 0),
1861UNUSUAL_DEV( 0x12d1, 0x142C, 0x0000, 0x0000,
1862 "HUAWEI MOBILE",
1863 "Mass Storage",
1864 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1865 0),
1866UNUSUAL_DEV( 0x12d1, 0x142D, 0x0000, 0x0000,
1867 "HUAWEI MOBILE",
1868 "Mass Storage",
1869 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1870 0),
1871UNUSUAL_DEV( 0x12d1, 0x142E, 0x0000, 0x0000,
1872 "HUAWEI MOBILE",
1873 "Mass Storage",
1874 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1875 0),
1876UNUSUAL_DEV( 0x12d1, 0x142F, 0x0000, 0x0000,
1877 "HUAWEI MOBILE",
1878 "Mass Storage",
1879 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1880 0),
1881UNUSUAL_DEV( 0x12d1, 0x1430, 0x0000, 0x0000,
1882 "HUAWEI MOBILE",
1883 "Mass Storage",
1884 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1885 0),
1886UNUSUAL_DEV( 0x12d1, 0x1431, 0x0000, 0x0000,
1887 "HUAWEI MOBILE",
1888 "Mass Storage",
1889 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1890 0),
1891UNUSUAL_DEV( 0x12d1, 0x1432, 0x0000, 0x0000,
1892 "HUAWEI MOBILE",
1893 "Mass Storage",
1894 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1895 0),
1896UNUSUAL_DEV( 0x12d1, 0x1433, 0x0000, 0x0000,
1897 "HUAWEI MOBILE",
1898 "Mass Storage",
1899 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1900 0),
1901UNUSUAL_DEV( 0x12d1, 0x1434, 0x0000, 0x0000,
1902 "HUAWEI MOBILE",
1903 "Mass Storage",
1904 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1905 0),
1906UNUSUAL_DEV( 0x12d1, 0x1435, 0x0000, 0x0000,
1907 "HUAWEI MOBILE",
1908 "Mass Storage",
1909 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1910 0),
1911UNUSUAL_DEV( 0x12d1, 0x1436, 0x0000, 0x0000,
1912 "HUAWEI MOBILE",
1913 "Mass Storage",
1914 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1915 0),
1916UNUSUAL_DEV( 0x12d1, 0x1437, 0x0000, 0x0000,
1917 "HUAWEI MOBILE",
1918 "Mass Storage",
1919 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1920 0),
1921UNUSUAL_DEV( 0x12d1, 0x1438, 0x0000, 0x0000,
1922 "HUAWEI MOBILE",
1923 "Mass Storage",
1924 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1925 0),
1926UNUSUAL_DEV( 0x12d1, 0x1439, 0x0000, 0x0000,
1927 "HUAWEI MOBILE",
1928 "Mass Storage",
1929 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1930 0),
1931UNUSUAL_DEV( 0x12d1, 0x143A, 0x0000, 0x0000,
1932 "HUAWEI MOBILE",
1933 "Mass Storage",
1934 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1935 0),
1936UNUSUAL_DEV( 0x12d1, 0x143B, 0x0000, 0x0000,
1937 "HUAWEI MOBILE",
1938 "Mass Storage",
1939 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1940 0),
1941UNUSUAL_DEV( 0x12d1, 0x143C, 0x0000, 0x0000,
1942 "HUAWEI MOBILE",
1943 "Mass Storage",
1944 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1945 0),
1946UNUSUAL_DEV( 0x12d1, 0x143D, 0x0000, 0x0000,
1947 "HUAWEI MOBILE",
1948 "Mass Storage",
1949 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1950 0),
1951UNUSUAL_DEV( 0x12d1, 0x143E, 0x0000, 0x0000,
1952 "HUAWEI MOBILE",
1953 "Mass Storage",
1954 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1955 0),
1956UNUSUAL_DEV( 0x12d1, 0x143F, 0x0000, 0x0000,
1722 "HUAWEI MOBILE", 1957 "HUAWEI MOBILE",
1723 "Mass Storage", 1958 "Mass Storage",
1724 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1959 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,