Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

fangxiaozhi and committed by
Greg Kroah-Hartman
1460e5e4 bfd8408d

+349 -21
+94
drivers/usb/serial/option.c
··· 95 95 #define HUAWEI_PRODUCT_E220 0x1003 96 96 #define HUAWEI_PRODUCT_E220BIS 0x1004 97 97 #define HUAWEI_PRODUCT_E1401 0x1401 98 + #define HUAWEI_PRODUCT_E1402 0x1402 98 99 #define HUAWEI_PRODUCT_E1403 0x1403 100 + #define HUAWEI_PRODUCT_E1404 0x1404 99 101 #define HUAWEI_PRODUCT_E1405 0x1405 100 102 #define HUAWEI_PRODUCT_E1406 0x1406 103 + #define HUAWEI_PRODUCT_E1407 0x1407 101 104 #define HUAWEI_PRODUCT_E1408 0x1408 102 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 112 #define HUAWEI_PRODUCT_E1410 0x1410 104 113 #define HUAWEI_PRODUCT_E1411 0x1411 105 114 #define HUAWEI_PRODUCT_E1412 0x1412 ··· 119 110 #define HUAWEI_PRODUCT_E1417 0x1417 120 111 #define HUAWEI_PRODUCT_E1418 0x1418 121 112 #define HUAWEI_PRODUCT_E1419 0x1419 113 + #define HUAWEI_PRODUCT_E141A 0x141A 114 + #define HUAWEI_PRODUCT_E141B 0x141B 115 + #define HUAWEI_PRODUCT_E141C 0x141C 116 + #define HUAWEI_PRODUCT_E141D 0x141D 117 + #define HUAWEI_PRODUCT_E141E 0x141E 118 + #define HUAWEI_PRODUCT_E141F 0x141F 119 + #define HUAWEI_PRODUCT_E1420 0x1420 120 + #define HUAWEI_PRODUCT_E1421 0x1421 121 + #define HUAWEI_PRODUCT_E1422 0x1422 122 + #define HUAWEI_PRODUCT_E1423 0x1423 123 + #define HUAWEI_PRODUCT_E1424 0x1424 124 + #define HUAWEI_PRODUCT_E1425 0x1425 125 + #define HUAWEI_PRODUCT_E1426 0x1426 126 + #define HUAWEI_PRODUCT_E1427 0x1427 127 + #define HUAWEI_PRODUCT_E1428 0x1428 128 + #define HUAWEI_PRODUCT_E1429 0x1429 129 + #define HUAWEI_PRODUCT_E142A 0x142A 130 + #define HUAWEI_PRODUCT_E142B 0x142B 131 + #define HUAWEI_PRODUCT_E142C 0x142C 132 + #define HUAWEI_PRODUCT_E142D 0x142D 133 + #define HUAWEI_PRODUCT_E142E 0x142E 134 + #define HUAWEI_PRODUCT_E142F 0x142F 135 + #define HUAWEI_PRODUCT_E1430 0x1430 136 + #define HUAWEI_PRODUCT_E1431 0x1431 137 + #define HUAWEI_PRODUCT_E1432 0x1432 138 + #define HUAWEI_PRODUCT_E1433 0x1433 139 + #define HUAWEI_PRODUCT_E1434 0x1434 140 + #define HUAWEI_PRODUCT_E1435 0x1435 141 + #define HUAWEI_PRODUCT_E1436 0x1436 142 + #define HUAWEI_PRODUCT_E1437 0x1437 143 + #define HUAWEI_PRODUCT_E1438 0x1438 144 + #define HUAWEI_PRODUCT_E1439 0x1439 145 + #define HUAWEI_PRODUCT_E143A 0x143A 146 + #define HUAWEI_PRODUCT_E143B 0x143B 147 + #define HUAWEI_PRODUCT_E143C 0x143C 148 + #define HUAWEI_PRODUCT_E143D 0x143D 149 + #define HUAWEI_PRODUCT_E143E 0x143E 150 + #define HUAWEI_PRODUCT_E143F 0x143F 122 151 123 152 #define NOVATELWIRELESS_VENDOR_ID 0x1410 124 153 ··· 296 249 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, 297 250 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, 298 251 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 0xff, 0xff, 0xff) }, 252 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1402, 0xff, 0xff, 0xff) }, 299 253 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403, 0xff, 0xff, 0xff) }, 254 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1404, 0xff, 0xff, 0xff) }, 300 255 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405, 0xff, 0xff, 0xff) }, 301 256 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406, 0xff, 0xff, 0xff) }, 257 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1407, 0xff, 0xff, 0xff) }, 302 258 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408, 0xff, 0xff, 0xff) }, 303 259 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409, 0xff, 0xff, 0xff) }, 260 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140A, 0xff, 0xff, 0xff) }, 261 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140B, 0xff, 0xff, 0xff) }, 262 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140C, 0xff, 0xff, 0xff) }, 263 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140D, 0xff, 0xff, 0xff) }, 264 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140E, 0xff, 0xff, 0xff) }, 265 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140F, 0xff, 0xff, 0xff) }, 304 266 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410, 0xff, 0xff, 0xff) }, 305 267 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411, 0xff, 0xff, 0xff) }, 306 268 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412, 0xff, 0xff, 0xff) }, ··· 320 264 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417, 0xff, 0xff, 0xff) }, 321 265 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418, 0xff, 0xff, 0xff) }, 322 266 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419, 0xff, 0xff, 0xff) }, 267 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141A, 0xff, 0xff, 0xff) }, 268 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141B, 0xff, 0xff, 0xff) }, 269 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141C, 0xff, 0xff, 0xff) }, 270 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141D, 0xff, 0xff, 0xff) }, 271 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141E, 0xff, 0xff, 0xff) }, 272 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141F, 0xff, 0xff, 0xff) }, 273 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1420, 0xff, 0xff, 0xff) }, 274 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1421, 0xff, 0xff, 0xff) }, 275 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1422, 0xff, 0xff, 0xff) }, 276 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1423, 0xff, 0xff, 0xff) }, 277 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1424, 0xff, 0xff, 0xff) }, 278 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1425, 0xff, 0xff, 0xff) }, 279 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1426, 0xff, 0xff, 0xff) }, 280 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1427, 0xff, 0xff, 0xff) }, 281 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1428, 0xff, 0xff, 0xff) }, 282 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1429, 0xff, 0xff, 0xff) }, 283 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142A, 0xff, 0xff, 0xff) }, 284 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142B, 0xff, 0xff, 0xff) }, 285 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142C, 0xff, 0xff, 0xff) }, 286 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142D, 0xff, 0xff, 0xff) }, 287 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142E, 0xff, 0xff, 0xff) }, 288 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142F, 0xff, 0xff, 0xff) }, 289 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1430, 0xff, 0xff, 0xff) }, 290 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1431, 0xff, 0xff, 0xff) }, 291 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1432, 0xff, 0xff, 0xff) }, 292 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1433, 0xff, 0xff, 0xff) }, 293 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1434, 0xff, 0xff, 0xff) }, 294 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1435, 0xff, 0xff, 0xff) }, 295 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1436, 0xff, 0xff, 0xff) }, 296 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1437, 0xff, 0xff, 0xff) }, 297 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1438, 0xff, 0xff, 0xff) }, 298 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1439, 0xff, 0xff, 0xff) }, 299 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143A, 0xff, 0xff, 0xff) }, 300 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143B, 0xff, 0xff, 0xff) }, 301 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143C, 0xff, 0xff, 0xff) }, 302 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) }, 303 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) }, 304 + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) }, 323 305 { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) }, 324 306 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ 325 307 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */
+1 -2
drivers/usb/storage/initializers.c
··· 95 95 { 96 96 int result; 97 97 98 - us->iobuf[0] = 0x1; 99 98 result = usb_stor_control_msg(us, us->send_ctrl_pipe, 100 99 USB_REQ_SET_FEATURE, 101 100 USB_TYPE_STANDARD | USB_RECIP_DEVICE, 102 - 0x01, 0x0, us->iobuf, 0x1, 1000); 101 + 0x01, 0x0, NULL, 0x0, 1000); 103 102 US_DEBUGP("usb_control_msg performing result is %d\n", result); 104 103 return (result ? 0 : -1); 105 104 }
+254 -19
drivers/usb/storage/unusual_devs.h
··· 1628 1628 /* Reported by fangxiaozhi <huananhu@huawei.com> 1629 1629 * This brings the HUAWEI data card devices into multi-port mode 1630 1630 */ 1631 - UNUSUAL_DEV( 0x12d1, 0x1001, 0x0000, 0x0000, 1631 + UNUSUAL_DEV( 0x12d1, 0x1001, 0x0000, 0x0000, 1632 1632 "HUAWEI MOBILE", 1633 1633 "Mass Storage", 1634 1634 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1635 1635 0), 1636 - UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000, 1636 + UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000, 1637 1637 "HUAWEI MOBILE", 1638 1638 "Mass Storage", 1639 1639 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1640 1640 0), 1641 - UNUSUAL_DEV( 0x12d1, 0x1004, 0x0000, 0x0000, 1641 + UNUSUAL_DEV( 0x12d1, 0x1004, 0x0000, 0x0000, 1642 1642 "HUAWEI MOBILE", 1643 1643 "Mass Storage", 1644 1644 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1645 1645 0), 1646 - UNUSUAL_DEV( 0x12d1, 0x1401, 0x0000, 0x0000, 1646 + UNUSUAL_DEV( 0x12d1, 0x1401, 0x0000, 0x0000, 1647 1647 "HUAWEI MOBILE", 1648 1648 "Mass Storage", 1649 1649 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1650 1650 0), 1651 - UNUSUAL_DEV( 0x12d1, 0x1403, 0x0000, 0x0000, 1651 + UNUSUAL_DEV( 0x12d1, 0x1402, 0x0000, 0x0000, 1652 1652 "HUAWEI MOBILE", 1653 1653 "Mass Storage", 1654 1654 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1655 1655 0), 1656 - UNUSUAL_DEV( 0x12d1, 0x1405, 0x0000, 0x0000, 1656 + UNUSUAL_DEV( 0x12d1, 0x1403, 0x0000, 0x0000, 1657 1657 "HUAWEI MOBILE", 1658 1658 "Mass Storage", 1659 1659 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1660 1660 0), 1661 - UNUSUAL_DEV( 0x12d1, 0x1406, 0x0000, 0x0000, 1661 + UNUSUAL_DEV( 0x12d1, 0x1404, 0x0000, 0x0000, 1662 1662 "HUAWEI MOBILE", 1663 1663 "Mass Storage", 1664 1664 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1665 1665 0), 1666 - UNUSUAL_DEV( 0x12d1, 0x1408, 0x0000, 0x0000, 1666 + UNUSUAL_DEV( 0x12d1, 0x1405, 0x0000, 0x0000, 1667 1667 "HUAWEI MOBILE", 1668 1668 "Mass Storage", 1669 1669 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1670 1670 0), 1671 - UNUSUAL_DEV( 0x12d1, 0x1409, 0x0000, 0x0000, 1671 + UNUSUAL_DEV( 0x12d1, 0x1406, 0x0000, 0x0000, 1672 1672 "HUAWEI MOBILE", 1673 1673 "Mass Storage", 1674 1674 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1675 1675 0), 1676 - UNUSUAL_DEV( 0x12d1, 0x1410, 0x0000, 0x0000, 1676 + UNUSUAL_DEV( 0x12d1, 0x1407, 0x0000, 0x0000, 1677 1677 "HUAWEI MOBILE", 1678 1678 "Mass Storage", 1679 1679 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1680 1680 0), 1681 - UNUSUAL_DEV( 0x12d1, 0x1411, 0x0000, 0x0000, 1681 + UNUSUAL_DEV( 0x12d1, 0x1408, 0x0000, 0x0000, 1682 1682 "HUAWEI MOBILE", 1683 1683 "Mass Storage", 1684 1684 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1685 1685 0), 1686 - UNUSUAL_DEV( 0x12d1, 0x1412, 0x0000, 0x0000, 1686 + UNUSUAL_DEV( 0x12d1, 0x1409, 0x0000, 0x0000, 1687 1687 "HUAWEI MOBILE", 1688 1688 "Mass Storage", 1689 1689 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1690 1690 0), 1691 - UNUSUAL_DEV( 0x12d1, 0x1413, 0x0000, 0x0000, 1691 + UNUSUAL_DEV( 0x12d1, 0x140A, 0x0000, 0x0000, 1692 1692 "HUAWEI MOBILE", 1693 1693 "Mass Storage", 1694 1694 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1695 1695 0), 1696 - UNUSUAL_DEV( 0x12d1, 0x1414, 0x0000, 0x0000, 1696 + UNUSUAL_DEV( 0x12d1, 0x140B, 0x0000, 0x0000, 1697 1697 "HUAWEI MOBILE", 1698 1698 "Mass Storage", 1699 1699 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1700 1700 0), 1701 - UNUSUAL_DEV( 0x12d1, 0x1415, 0x0000, 0x0000, 1701 + UNUSUAL_DEV( 0x12d1, 0x140C, 0x0000, 0x0000, 1702 1702 "HUAWEI MOBILE", 1703 1703 "Mass Storage", 1704 1704 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1705 1705 0), 1706 - UNUSUAL_DEV( 0x12d1, 0x1416, 0x0000, 0x0000, 1706 + UNUSUAL_DEV( 0x12d1, 0x140D, 0x0000, 0x0000, 1707 1707 "HUAWEI MOBILE", 1708 1708 "Mass Storage", 1709 1709 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1710 1710 0), 1711 - UNUSUAL_DEV( 0x12d1, 0x1417, 0x0000, 0x0000, 1711 + UNUSUAL_DEV( 0x12d1, 0x140E, 0x0000, 0x0000, 1712 1712 "HUAWEI MOBILE", 1713 1713 "Mass Storage", 1714 1714 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1715 1715 0), 1716 - UNUSUAL_DEV( 0x12d1, 0x1418, 0x0000, 0x0000, 1716 + UNUSUAL_DEV( 0x12d1, 0x140F, 0x0000, 0x0000, 1717 1717 "HUAWEI MOBILE", 1718 1718 "Mass Storage", 1719 1719 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1720 1720 0), 1721 - UNUSUAL_DEV( 0x12d1, 0x1419, 0x0000, 0x0000, 1721 + UNUSUAL_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), 1726 + UNUSUAL_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), 1731 + UNUSUAL_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), 1736 + UNUSUAL_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), 1741 + UNUSUAL_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), 1746 + UNUSUAL_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), 1751 + UNUSUAL_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), 1756 + UNUSUAL_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), 1761 + UNUSUAL_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), 1766 + UNUSUAL_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), 1771 + UNUSUAL_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), 1776 + UNUSUAL_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), 1781 + UNUSUAL_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), 1786 + UNUSUAL_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), 1791 + UNUSUAL_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), 1796 + UNUSUAL_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), 1801 + UNUSUAL_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), 1806 + UNUSUAL_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), 1811 + UNUSUAL_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), 1816 + UNUSUAL_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), 1821 + UNUSUAL_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), 1826 + UNUSUAL_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), 1831 + UNUSUAL_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), 1836 + UNUSUAL_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), 1841 + UNUSUAL_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), 1846 + UNUSUAL_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), 1851 + UNUSUAL_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), 1856 + UNUSUAL_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), 1861 + UNUSUAL_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), 1866 + UNUSUAL_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), 1871 + UNUSUAL_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), 1876 + UNUSUAL_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), 1881 + UNUSUAL_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), 1886 + UNUSUAL_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), 1891 + UNUSUAL_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), 1896 + UNUSUAL_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), 1901 + UNUSUAL_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), 1906 + UNUSUAL_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), 1911 + UNUSUAL_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), 1916 + UNUSUAL_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), 1921 + UNUSUAL_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), 1926 + UNUSUAL_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), 1931 + UNUSUAL_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), 1936 + UNUSUAL_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), 1941 + UNUSUAL_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), 1946 + UNUSUAL_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), 1951 + UNUSUAL_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), 1956 + UNUSUAL_DEV( 0x12d1, 0x143F, 0x0000, 0x0000, 1722 1957 "HUAWEI MOBILE", 1723 1958 "Mass Storage", 1724 1959 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,