.. | .. |
---|
198 | 198 | |
---|
199 | 199 | #define DELL_PRODUCT_5821E 0x81d7 |
---|
200 | 200 | #define DELL_PRODUCT_5821E_ESIM 0x81e0 |
---|
| 201 | +#define DELL_PRODUCT_5829E_ESIM 0x81e4 |
---|
| 202 | +#define DELL_PRODUCT_5829E 0x81e6 |
---|
201 | 203 | |
---|
202 | 204 | #define KYOCERA_VENDOR_ID 0x0c88 |
---|
203 | 205 | #define KYOCERA_PRODUCT_KPC650 0x17da |
---|
.. | .. |
---|
238 | 240 | #define QUECTEL_PRODUCT_UC15 0x9090 |
---|
239 | 241 | /* These u-blox products use Qualcomm's vendor ID */ |
---|
240 | 242 | #define UBLOX_PRODUCT_R410M 0x90b2 |
---|
| 243 | +#define UBLOX_PRODUCT_R6XX 0x90fa |
---|
241 | 244 | /* These Yuga products use Qualcomm's vendor ID */ |
---|
242 | 245 | #define YUGA_PRODUCT_CLM920_NC5 0x9625 |
---|
243 | 246 | |
---|
.. | .. |
---|
245 | 248 | /* These Quectel products use Quectel's vendor ID */ |
---|
246 | 249 | #define QUECTEL_PRODUCT_EC21 0x0121 |
---|
247 | 250 | #define QUECTEL_PRODUCT_EC25 0x0125 |
---|
| 251 | +#define QUECTEL_PRODUCT_EG91 0x0191 |
---|
248 | 252 | #define QUECTEL_PRODUCT_EG95 0x0195 |
---|
249 | 253 | #define QUECTEL_PRODUCT_BG96 0x0296 |
---|
250 | 254 | #define QUECTEL_PRODUCT_EP06 0x0306 |
---|
251 | 255 | #define QUECTEL_PRODUCT_EM12 0x0512 |
---|
252 | 256 | #define QUECTEL_PRODUCT_RM500Q 0x0800 |
---|
| 257 | +#define QUECTEL_PRODUCT_EC200S_CN 0x6002 |
---|
253 | 258 | #define QUECTEL_PRODUCT_EC200T 0x6026 |
---|
254 | 259 | |
---|
255 | 260 | #define CMOTECH_VENDOR_ID 0x16d8 |
---|
.. | .. |
---|
425 | 430 | #define CINTERION_PRODUCT_AHXX_2RMNET 0x0084 |
---|
426 | 431 | #define CINTERION_PRODUCT_AHXX_AUDIO 0x0085 |
---|
427 | 432 | #define CINTERION_PRODUCT_CLS8 0x00b0 |
---|
| 433 | +#define CINTERION_PRODUCT_MV31_MBIM 0x00b3 |
---|
| 434 | +#define CINTERION_PRODUCT_MV31_RMNET 0x00b7 |
---|
428 | 435 | |
---|
429 | 436 | /* Olivetti products */ |
---|
430 | 437 | #define OLIVETTI_VENDOR_ID 0x0b3c |
---|
.. | .. |
---|
580 | 587 | |
---|
581 | 588 | |
---|
582 | 589 | static const struct usb_device_id option_ids[] = { |
---|
583 | | -#if 1 |
---|
584 | | - { USB_DEVICE( 0x2cb7, 0x0a04 ) }, /* Fibocom FG650 ECM */ |
---|
585 | | - { USB_DEVICE( 0x2cb7, 0x0a05 ) }, /* Fibocom FG650 NCM */ |
---|
586 | | - { USB_DEVICE( 0x2cb7, 0x0a06 ) }, /* Fibocom FG650 RNDIS*/ |
---|
587 | | -#endif |
---|
588 | | - |
---|
589 | | -#if 1 //Added by Quectel |
---|
590 | | - { USB_DEVICE(0x05C6, 0x9090) }, /* Quectel UC15 */ |
---|
591 | | - { USB_DEVICE(0x05C6, 0x9003) }, /* Quectel UC20 */ |
---|
592 | | - { USB_DEVICE(0x05C6, 0x9215) }, /* Quectel EC20(MDM9215) */ |
---|
593 | | - { USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC20(MDM9x07)/EC25/EG25 */ |
---|
594 | | - { USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21 */ |
---|
595 | | - { USB_DEVICE(0x2C7C, 0x0191) }, /* Quectel EG91 */ |
---|
596 | | - { USB_DEVICE(0x2C7C, 0x0195) }, /* Quectel EG95 */ |
---|
597 | | - { USB_DEVICE(0x2C7C, 0x0306) }, /* Quectel EG06/EP06/EM06 */ |
---|
598 | | - { USB_DEVICE(0x2C7C, 0x0512) }, /* Quectel EG12/EP12/EM12/EG16/EG18 */ |
---|
599 | | - { USB_DEVICE(0x2C7C, 0x0296) }, /* Quectel BG96 */ |
---|
600 | | - { USB_DEVICE(0x2C7C, 0x0700) }, /* Quectel BG95/BG77/BG600L-M3/BC69 */ |
---|
601 | | - { USB_DEVICE(0x2C7C, 0x0435) }, /* Quectel AG35 */ |
---|
602 | | - { USB_DEVICE(0x2C7C, 0x0415) }, /* Quectel AG15 */ |
---|
603 | | - { USB_DEVICE(0x2C7C, 0x0520) }, /* Quectel AG520 */ |
---|
604 | | - { USB_DEVICE(0x2C7C, 0x0550) }, /* Quectel AG550 */ |
---|
605 | | - { USB_DEVICE(0x2C7C, 0x0620) }, /* Quectel EG20 */ |
---|
606 | | - { USB_DEVICE(0x2C7C, 0x0800) }, /* Quectel RG500/RM500/RG510/RM510 */ |
---|
607 | | - { USB_DEVICE(0x2C7C, 0x6026) }, /* Quectel EC200 */ |
---|
608 | | - { USB_DEVICE(0x2C7C, 0x6120) }, /* Quectel UC200 */ |
---|
609 | | - { USB_DEVICE(0x2C7C, 0x6000) }, /* Quectel EC200/UC200 */ |
---|
610 | | - { USB_DEVICE(0x2C7C, 0x6002) }, /* Quectel EC200/UC200 */ |
---|
611 | | -#endif |
---|
612 | | - { USB_DEVICE(0x19d2, 0x0199) }, /* ZTE ME3860 ME3760_V2*/ |
---|
613 | | - { USB_DEVICE(0x19d2, 0x1476) }, /* ZTE ME3620*/ |
---|
614 | | - { USB_DEVICE(0x19d2, 0x0117) }, |
---|
615 | | - |
---|
616 | 590 | { USB_DEVICE(0x1286, 0x4e3c) }, |
---|
617 | 591 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, |
---|
618 | 592 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, |
---|
.. | .. |
---|
1092 | 1066 | .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, |
---|
1093 | 1067 | { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E_ESIM), |
---|
1094 | 1068 | .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, |
---|
| 1069 | + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E), |
---|
| 1070 | + .driver_info = RSVD(0) | RSVD(6) }, |
---|
| 1071 | + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E_ESIM), |
---|
| 1072 | + .driver_info = RSVD(0) | RSVD(6) }, |
---|
1095 | 1073 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */ |
---|
1096 | 1074 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, |
---|
1097 | 1075 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, |
---|
.. | .. |
---|
1133 | 1111 | /* u-blox products using Qualcomm vendor ID */ |
---|
1134 | 1112 | { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M), |
---|
1135 | 1113 | .driver_info = RSVD(1) | RSVD(3) }, |
---|
| 1114 | + { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX), |
---|
| 1115 | + .driver_info = RSVD(3) }, |
---|
1136 | 1116 | /* Quectel products using Quectel vendor ID */ |
---|
1137 | 1117 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff), |
---|
1138 | 1118 | .driver_info = NUMEP2 }, |
---|
.. | .. |
---|
1140 | 1120 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0xff, 0xff), |
---|
1141 | 1121 | .driver_info = NUMEP2 }, |
---|
1142 | 1122 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0, 0) }, |
---|
| 1123 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG91, 0xff, 0xff, 0xff), |
---|
| 1124 | + .driver_info = NUMEP2 }, |
---|
| 1125 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG91, 0xff, 0, 0) }, |
---|
1143 | 1126 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0xff, 0xff), |
---|
1144 | 1127 | .driver_info = NUMEP2 }, |
---|
1145 | 1128 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) }, |
---|
.. | .. |
---|
1157 | 1140 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0) }, |
---|
1158 | 1141 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x10), |
---|
1159 | 1142 | .driver_info = ZLP }, |
---|
| 1143 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200S_CN, 0xff, 0, 0) }, |
---|
1160 | 1144 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) }, |
---|
1161 | 1145 | |
---|
1162 | 1146 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, |
---|
.. | .. |
---|
1232 | 1216 | .driver_info = NCTRL(2) | RSVD(3) }, |
---|
1233 | 1217 | { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1055, 0xff), /* Telit FN980 (PCIe) */ |
---|
1234 | 1218 | .driver_info = NCTRL(0) | RSVD(1) }, |
---|
| 1219 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1056, 0xff), /* Telit FD980 */ |
---|
| 1220 | + .driver_info = NCTRL(2) | RSVD(3) }, |
---|
| 1221 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1060, 0xff), /* Telit LN920 (rmnet) */ |
---|
| 1222 | + .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, |
---|
| 1223 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1061, 0xff), /* Telit LN920 (MBIM) */ |
---|
| 1224 | + .driver_info = NCTRL(0) | RSVD(1) }, |
---|
| 1225 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1062, 0xff), /* Telit LN920 (RNDIS) */ |
---|
| 1226 | + .driver_info = NCTRL(2) | RSVD(3) }, |
---|
| 1227 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1063, 0xff), /* Telit LN920 (ECM) */ |
---|
| 1228 | + .driver_info = NCTRL(0) | RSVD(1) }, |
---|
| 1229 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1070, 0xff), /* Telit FN990 (rmnet) */ |
---|
| 1230 | + .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, |
---|
| 1231 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1071, 0xff), /* Telit FN990 (MBIM) */ |
---|
| 1232 | + .driver_info = NCTRL(0) | RSVD(1) }, |
---|
| 1233 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1072, 0xff), /* Telit FN990 (RNDIS) */ |
---|
| 1234 | + .driver_info = NCTRL(2) | RSVD(3) }, |
---|
| 1235 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1073, 0xff), /* Telit FN990 (ECM) */ |
---|
| 1236 | + .driver_info = NCTRL(0) | RSVD(1) }, |
---|
1235 | 1237 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910), |
---|
1236 | 1238 | .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) }, |
---|
1237 | 1239 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM), |
---|
.. | .. |
---|
1246 | 1248 | .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, |
---|
1247 | 1249 | { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1203, 0xff), /* Telit LE910Cx (RNDIS) */ |
---|
1248 | 1250 | .driver_info = NCTRL(2) | RSVD(3) }, |
---|
| 1251 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1204, 0xff), /* Telit LE910Cx (MBIM) */ |
---|
| 1252 | + .driver_info = NCTRL(0) | RSVD(1) }, |
---|
1249 | 1253 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910_USBCFG4), |
---|
1250 | 1254 | .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) }, |
---|
1251 | 1255 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920), |
---|
.. | .. |
---|
1272 | 1276 | .driver_info = NCTRL(0) | RSVD(1) }, |
---|
1273 | 1277 | { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1901, 0xff), /* Telit LN940 (MBIM) */ |
---|
1274 | 1278 | .driver_info = NCTRL(0) }, |
---|
| 1279 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x7010, 0xff), /* Telit LE910-S1 (RNDIS) */ |
---|
| 1280 | + .driver_info = NCTRL(2) }, |
---|
| 1281 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x7011, 0xff), /* Telit LE910-S1 (ECM) */ |
---|
| 1282 | + .driver_info = NCTRL(2) }, |
---|
| 1283 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x701a, 0xff), /* Telit LE910R1 (RNDIS) */ |
---|
| 1284 | + .driver_info = NCTRL(2) }, |
---|
| 1285 | + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x701b, 0xff), /* Telit LE910R1 (ECM) */ |
---|
| 1286 | + .driver_info = NCTRL(2) }, |
---|
1275 | 1287 | { USB_DEVICE(TELIT_VENDOR_ID, 0x9010), /* Telit SBL FN980 flashing device */ |
---|
| 1288 | + .driver_info = NCTRL(0) | ZLP }, |
---|
| 1289 | + { USB_DEVICE(TELIT_VENDOR_ID, 0x9200), /* Telit LE910S1 flashing device */ |
---|
| 1290 | + .driver_info = NCTRL(0) | ZLP }, |
---|
| 1291 | + { USB_DEVICE(TELIT_VENDOR_ID, 0x9201), /* Telit LE910R1 flashing device */ |
---|
1276 | 1292 | .driver_info = NCTRL(0) | ZLP }, |
---|
1277 | 1293 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ |
---|
1278 | 1294 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff), |
---|
.. | .. |
---|
1601 | 1617 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1272, 0xff, 0xff, 0xff) }, |
---|
1602 | 1618 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1273, 0xff, 0xff, 0xff) }, |
---|
1603 | 1619 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1274, 0xff, 0xff, 0xff) }, |
---|
1604 | | - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1275, 0xff, 0xff, 0xff) }, |
---|
| 1620 | + { USB_DEVICE(ZTE_VENDOR_ID, 0x1275), /* ZTE P685M */ |
---|
| 1621 | + .driver_info = RSVD(3) | RSVD(4) }, |
---|
1605 | 1622 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1276, 0xff, 0xff, 0xff) }, |
---|
1606 | 1623 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1277, 0xff, 0xff, 0xff) }, |
---|
1607 | 1624 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1278, 0xff, 0xff, 0xff) }, |
---|
.. | .. |
---|
1645 | 1662 | .driver_info = RSVD(2) }, |
---|
1646 | 1663 | { USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x1476, 0xff) }, /* GosunCn ZTE WeLink ME3630 (ECM/NCM mode) */ |
---|
1647 | 1664 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1481, 0xff, 0x00, 0x00) }, /* ZTE MF871A */ |
---|
| 1665 | + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1485, 0xff, 0xff, 0xff), /* ZTE MF286D */ |
---|
| 1666 | + .driver_info = RSVD(5) }, |
---|
1648 | 1667 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) }, |
---|
1649 | 1668 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) }, |
---|
1650 | 1669 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) }, |
---|
.. | .. |
---|
1672 | 1691 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0060, 0xff, 0xff, 0xff) }, |
---|
1673 | 1692 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) }, |
---|
1674 | 1693 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0073, 0xff, 0xff, 0xff) }, |
---|
1675 | | - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0094, 0xff, 0xff, 0xff) }, |
---|
1676 | 1694 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff), |
---|
1677 | 1695 | .driver_info = RSVD(1) }, |
---|
1678 | 1696 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0133, 0xff, 0xff, 0xff), |
---|
.. | .. |
---|
1948 | 1966 | { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDMNET) }, |
---|
1949 | 1967 | { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, /* HC28 enumerates with Siemens or Cinterion VID depending on FW revision */ |
---|
1950 | 1968 | { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) }, |
---|
| 1969 | + { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_MBIM, 0xff), |
---|
| 1970 | + .driver_info = RSVD(3)}, |
---|
| 1971 | + { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_RMNET, 0xff), |
---|
| 1972 | + .driver_info = RSVD(0)}, |
---|
1951 | 1973 | { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100), |
---|
1952 | 1974 | .driver_info = RSVD(4) }, |
---|
1953 | 1975 | { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD120), |
---|
.. | .. |
---|
2086 | 2108 | .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, |
---|
2087 | 2109 | { USB_DEVICE(0x0489, 0xe0b5), /* Foxconn T77W968 ESIM */ |
---|
2088 | 2110 | .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, |
---|
| 2111 | + { USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0db, 0xff), /* Foxconn T99W265 MBIM */ |
---|
| 2112 | + .driver_info = RSVD(3) }, |
---|
2089 | 2113 | { USB_DEVICE(0x1508, 0x1001), /* Fibocom NL668 (IOT version) */ |
---|
2090 | 2114 | .driver_info = RSVD(4) | RSVD(5) | RSVD(6) }, |
---|
2091 | 2115 | { USB_DEVICE(0x2cb7, 0x0104), /* Fibocom NL678 series */ |
---|
2092 | 2116 | .driver_info = RSVD(4) | RSVD(5) }, |
---|
2093 | 2117 | { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0105, 0xff), /* Fibocom NL678 series */ |
---|
2094 | 2118 | .driver_info = RSVD(6) }, |
---|
| 2119 | + { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0xff, 0x30) }, /* Fibocom FG150 Diag */ |
---|
| 2120 | + { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0, 0) }, /* Fibocom FG150 AT */ |
---|
2095 | 2121 | { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a0, 0xff) }, /* Fibocom NL668-AM/NL652-EU (laptop MBIM) */ |
---|
| 2122 | + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a2, 0xff) }, /* Fibocom FM101-GL (laptop MBIM) */ |
---|
| 2123 | + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a4, 0xff), /* Fibocom FM101-GL (laptop MBIM) */ |
---|
| 2124 | + .driver_info = RSVD(4) }, |
---|
2096 | 2125 | { USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */ |
---|
2097 | 2126 | { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) }, /* GosunCn GM500 RNDIS */ |
---|
2098 | 2127 | { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) }, /* GosunCn GM500 MBIM */ |
---|
.. | .. |
---|
2131 | 2160 | #ifdef CONFIG_PM |
---|
2132 | 2161 | .suspend = usb_wwan_suspend, |
---|
2133 | 2162 | .resume = usb_wwan_resume, |
---|
2134 | | -#if 1 //Added by Quectel |
---|
2135 | | - .reset_resume = usb_wwan_resume, |
---|
2136 | | -#endif |
---|
2137 | 2163 | #endif |
---|
2138 | 2164 | }; |
---|
2139 | 2165 | |
---|
.. | .. |
---|
2157 | 2183 | struct usb_interface_descriptor *iface_desc = |
---|
2158 | 2184 | &serial->interface->cur_altsetting->desc; |
---|
2159 | 2185 | unsigned long device_flags = id->driver_info; |
---|
2160 | | - |
---|
2161 | | -#if 1 |
---|
2162 | | - /*ZTE ME3860 ME3760_V2 ME3620*/ |
---|
2163 | | - printk("idVendor=%x, idProduct=%x, bInterfaceNumber =%d\r\n", |
---|
2164 | | - serial->dev->descriptor.idVendor, |
---|
2165 | | - serial->dev->descriptor.idProduct, |
---|
2166 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber); |
---|
2167 | | - |
---|
2168 | | - if (serial->dev->descriptor.idVendor == 0x19d2 && |
---|
2169 | | - serial->dev->descriptor.idProduct == 0x1476 && |
---|
2170 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber == 3) |
---|
2171 | | - return -ENODEV; |
---|
2172 | | - if (serial->dev->descriptor.idVendor == 0x19d2 && |
---|
2173 | | - serial->dev->descriptor.idProduct == 0x1476 && |
---|
2174 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber == 4) |
---|
2175 | | - return -ENODEV; |
---|
2176 | | - if (serial->dev->descriptor.idVendor == 0x19d2 && |
---|
2177 | | - serial->dev->descriptor.idProduct == 0x0199 && |
---|
2178 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber == 0) |
---|
2179 | | - return -ENODEV; |
---|
2180 | | - if (serial->dev->descriptor.idVendor == 0x19d2 && |
---|
2181 | | - serial->dev->descriptor.idProduct == 0x0199 && |
---|
2182 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber == 1) |
---|
2183 | | - return -ENODEV; |
---|
2184 | | -#endif |
---|
2185 | | - |
---|
2186 | | -#if 1 //Added by FG650 |
---|
2187 | | - if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2cb7) && |
---|
2188 | | - serial->dev->descriptor.idProduct == cpu_to_le16(0x0a04) && |
---|
2189 | | - serial->interface->cur_altsetting->desc.bInterfaceNumber <= 1) { |
---|
2190 | | - printk("Discover the 4th interface for fibocom\n"); |
---|
2191 | | - return -ENODEV; |
---|
2192 | | - } |
---|
2193 | | - |
---|
2194 | | - if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2cb7) && |
---|
2195 | | - serial->dev->descriptor.idProduct == cpu_to_le16(0x0a05) && |
---|
2196 | | - serial->interface->cur_altsetting->desc.bInterfaceNumber <= 1) { |
---|
2197 | | - printk("Discover the 4th interface for fibocom\n"); |
---|
2198 | | - return -ENODEV; |
---|
2199 | | - } |
---|
2200 | | - |
---|
2201 | | - if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2cb7) && |
---|
2202 | | - serial->dev->descriptor.idProduct == cpu_to_le16(0x0a06) && |
---|
2203 | | - serial->interface->cur_altsetting->desc.bInterfaceNumber <= 1) { |
---|
2204 | | - printk("Discover the 4th interface for fibocom\n"); |
---|
2205 | | - return -ENODEV; |
---|
2206 | | - } |
---|
2207 | | -#endif |
---|
2208 | | - |
---|
2209 | | - |
---|
2210 | | - |
---|
2211 | | -if (serial->dev->descriptor.idVendor == 0x19d2 && |
---|
2212 | | - serial->dev->descriptor.idProduct == 0x1476 && |
---|
2213 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber == 3) |
---|
2214 | | - return -ENODEV; |
---|
2215 | | - |
---|
2216 | | -if (serial->dev->descriptor.idVendor == 0x19d2 && |
---|
2217 | | - serial->dev->descriptor.idProduct == 0x1476 && |
---|
2218 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber == 4) |
---|
2219 | | - return -ENODEV; |
---|
2220 | | - |
---|
2221 | | -if (serial->dev->descriptor.idVendor == 0x19d2 && |
---|
2222 | | - serial->dev->descriptor.idProduct == 0x1509 && |
---|
2223 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber == 4) |
---|
2224 | | - return -ENODEV; |
---|
2225 | | - |
---|
2226 | | -if (serial->dev->descriptor.idVendor == 0x19d2 && |
---|
2227 | | - serial->dev->descriptor.idProduct == 0x1509 && |
---|
2228 | | - serial->interface->cur_altsetting->desc. bInterfaceNumber == 5) |
---|
2229 | | - return -ENODEV; |
---|
2230 | | - |
---|
2231 | | - |
---|
2232 | | -#if 1 //Added by Quectel |
---|
2233 | | - //Quectel UC20's interface 4 can be used as USB Network device |
---|
2234 | | - if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) && serial->dev->descriptor.idProduct == cpu_to_le16(0x9003) |
---|
2235 | | - && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4) |
---|
2236 | | - return -ENODEV; |
---|
2237 | | - |
---|
2238 | | - //Quectel EC20(MDM9215)'s interface 4 can be used as USB Network device |
---|
2239 | | - if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6) && serial->dev->descriptor.idProduct == cpu_to_le16(0x9215) |
---|
2240 | | - && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4) |
---|
2241 | | - return -ENODEV; |
---|
2242 | | - |
---|
2243 | | - if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C)) { |
---|
2244 | | - __u16 idProduct = le16_to_cpu(serial->dev->descriptor.idProduct); |
---|
2245 | | - |
---|
2246 | | - //Quectel module's some interfaces can be used as USB Network device (ecm, rndis, mbim) |
---|
2247 | | - if (serial->interface->cur_altsetting->desc.bInterfaceClass != 0xFF) |
---|
2248 | | - return -ENODEV; |
---|
2249 | | - |
---|
2250 | | - //Quectel EC25&EC20's interface 4 can be used as USB network device (qmi) |
---|
2251 | | - if ((idProduct != 0x6026 && idProduct != 0x6120) && serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4) |
---|
2252 | | - return -ENODEV; |
---|
2253 | | - } |
---|
2254 | | -#endif |
---|
2255 | 2186 | |
---|
2256 | 2187 | /* Never bind to the CD-Rom emulation interface */ |
---|
2257 | 2188 | if (iface_desc->bInterfaceClass == USB_CLASS_MASS_STORAGE) |
---|