.. | .. |
---|
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 |
---|
203 | 201 | |
---|
204 | 202 | #define KYOCERA_VENDOR_ID 0x0c88 |
---|
205 | 203 | #define KYOCERA_PRODUCT_KPC650 0x17da |
---|
.. | .. |
---|
240 | 238 | #define QUECTEL_PRODUCT_UC15 0x9090 |
---|
241 | 239 | /* These u-blox products use Qualcomm's vendor ID */ |
---|
242 | 240 | #define UBLOX_PRODUCT_R410M 0x90b2 |
---|
243 | | -#define UBLOX_PRODUCT_R6XX 0x90fa |
---|
244 | 241 | /* These Yuga products use Qualcomm's vendor ID */ |
---|
245 | 242 | #define YUGA_PRODUCT_CLM920_NC5 0x9625 |
---|
246 | 243 | |
---|
.. | .. |
---|
248 | 245 | /* These Quectel products use Quectel's vendor ID */ |
---|
249 | 246 | #define QUECTEL_PRODUCT_EC21 0x0121 |
---|
250 | 247 | #define QUECTEL_PRODUCT_EC25 0x0125 |
---|
251 | | -#define QUECTEL_PRODUCT_EG91 0x0191 |
---|
252 | 248 | #define QUECTEL_PRODUCT_EG95 0x0195 |
---|
253 | 249 | #define QUECTEL_PRODUCT_BG96 0x0296 |
---|
254 | 250 | #define QUECTEL_PRODUCT_EP06 0x0306 |
---|
255 | 251 | #define QUECTEL_PRODUCT_EM12 0x0512 |
---|
256 | 252 | #define QUECTEL_PRODUCT_RM500Q 0x0800 |
---|
257 | | -#define QUECTEL_PRODUCT_EC200S_CN 0x6002 |
---|
258 | 253 | #define QUECTEL_PRODUCT_EC200T 0x6026 |
---|
259 | 254 | |
---|
260 | 255 | #define CMOTECH_VENDOR_ID 0x16d8 |
---|
.. | .. |
---|
430 | 425 | #define CINTERION_PRODUCT_AHXX_2RMNET 0x0084 |
---|
431 | 426 | #define CINTERION_PRODUCT_AHXX_AUDIO 0x0085 |
---|
432 | 427 | #define CINTERION_PRODUCT_CLS8 0x00b0 |
---|
433 | | -#define CINTERION_PRODUCT_MV31_MBIM 0x00b3 |
---|
434 | | -#define CINTERION_PRODUCT_MV31_RMNET 0x00b7 |
---|
435 | 428 | |
---|
436 | 429 | /* Olivetti products */ |
---|
437 | 430 | #define OLIVETTI_VENDOR_ID 0x0b3c |
---|
.. | .. |
---|
587 | 580 | |
---|
588 | 581 | |
---|
589 | 582 | 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 | + |
---|
590 | 616 | { USB_DEVICE(0x1286, 0x4e3c) }, |
---|
591 | 617 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, |
---|
592 | 618 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, |
---|
.. | .. |
---|
1066 | 1092 | .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, |
---|
1067 | 1093 | { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E_ESIM), |
---|
1068 | 1094 | .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) }, |
---|
1073 | 1095 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */ |
---|
1074 | 1096 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, |
---|
1075 | 1097 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, |
---|
.. | .. |
---|
1111 | 1133 | /* u-blox products using Qualcomm vendor ID */ |
---|
1112 | 1134 | { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M), |
---|
1113 | 1135 | .driver_info = RSVD(1) | RSVD(3) }, |
---|
1114 | | - { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX), |
---|
1115 | | - .driver_info = RSVD(3) }, |
---|
1116 | 1136 | /* Quectel products using Quectel vendor ID */ |
---|
1117 | 1137 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff), |
---|
1118 | 1138 | .driver_info = NUMEP2 }, |
---|
.. | .. |
---|
1120 | 1140 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0xff, 0xff), |
---|
1121 | 1141 | .driver_info = NUMEP2 }, |
---|
1122 | 1142 | { 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) }, |
---|
1126 | 1143 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0xff, 0xff), |
---|
1127 | 1144 | .driver_info = NUMEP2 }, |
---|
1128 | 1145 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) }, |
---|
.. | .. |
---|
1140 | 1157 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0) }, |
---|
1141 | 1158 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x10), |
---|
1142 | 1159 | .driver_info = ZLP }, |
---|
1143 | | - { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200S_CN, 0xff, 0, 0) }, |
---|
1144 | 1160 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) }, |
---|
1145 | 1161 | |
---|
1146 | 1162 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, |
---|
.. | .. |
---|
1216 | 1232 | .driver_info = NCTRL(2) | RSVD(3) }, |
---|
1217 | 1233 | { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1055, 0xff), /* Telit FN980 (PCIe) */ |
---|
1218 | 1234 | .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) }, |
---|
1237 | 1235 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910), |
---|
1238 | 1236 | .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) }, |
---|
1239 | 1237 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM), |
---|
.. | .. |
---|
1248 | 1246 | .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, |
---|
1249 | 1247 | { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1203, 0xff), /* Telit LE910Cx (RNDIS) */ |
---|
1250 | 1248 | .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) }, |
---|
1253 | 1249 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910_USBCFG4), |
---|
1254 | 1250 | .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) }, |
---|
1255 | 1251 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920), |
---|
.. | .. |
---|
1276 | 1272 | .driver_info = NCTRL(0) | RSVD(1) }, |
---|
1277 | 1273 | { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1901, 0xff), /* Telit LN940 (MBIM) */ |
---|
1278 | 1274 | .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) }, |
---|
1287 | 1275 | { 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 */ |
---|
1292 | 1276 | .driver_info = NCTRL(0) | ZLP }, |
---|
1293 | 1277 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ |
---|
1294 | 1278 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff), |
---|
.. | .. |
---|
1617 | 1601 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1272, 0xff, 0xff, 0xff) }, |
---|
1618 | 1602 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1273, 0xff, 0xff, 0xff) }, |
---|
1619 | 1603 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1274, 0xff, 0xff, 0xff) }, |
---|
1620 | | - { USB_DEVICE(ZTE_VENDOR_ID, 0x1275), /* ZTE P685M */ |
---|
1621 | | - .driver_info = RSVD(3) | RSVD(4) }, |
---|
| 1604 | + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1275, 0xff, 0xff, 0xff) }, |
---|
1622 | 1605 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1276, 0xff, 0xff, 0xff) }, |
---|
1623 | 1606 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1277, 0xff, 0xff, 0xff) }, |
---|
1624 | 1607 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1278, 0xff, 0xff, 0xff) }, |
---|
.. | .. |
---|
1662 | 1645 | .driver_info = RSVD(2) }, |
---|
1663 | 1646 | { USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x1476, 0xff) }, /* GosunCn ZTE WeLink ME3630 (ECM/NCM mode) */ |
---|
1664 | 1647 | { 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) }, |
---|
1667 | 1648 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) }, |
---|
1668 | 1649 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) }, |
---|
1669 | 1650 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) }, |
---|
.. | .. |
---|
1691 | 1672 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0060, 0xff, 0xff, 0xff) }, |
---|
1692 | 1673 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) }, |
---|
1693 | 1674 | { 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) }, |
---|
1694 | 1676 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff), |
---|
1695 | 1677 | .driver_info = RSVD(1) }, |
---|
1696 | 1678 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0133, 0xff, 0xff, 0xff), |
---|
.. | .. |
---|
1966 | 1948 | { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDMNET) }, |
---|
1967 | 1949 | { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, /* HC28 enumerates with Siemens or Cinterion VID depending on FW revision */ |
---|
1968 | 1950 | { 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)}, |
---|
1973 | 1951 | { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100), |
---|
1974 | 1952 | .driver_info = RSVD(4) }, |
---|
1975 | 1953 | { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD120), |
---|
.. | .. |
---|
2108 | 2086 | .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, |
---|
2109 | 2087 | { USB_DEVICE(0x0489, 0xe0b5), /* Foxconn T77W968 ESIM */ |
---|
2110 | 2088 | .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, |
---|
2111 | | - { USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0db, 0xff), /* Foxconn T99W265 MBIM */ |
---|
2112 | | - .driver_info = RSVD(3) }, |
---|
2113 | 2089 | { USB_DEVICE(0x1508, 0x1001), /* Fibocom NL668 (IOT version) */ |
---|
2114 | 2090 | .driver_info = RSVD(4) | RSVD(5) | RSVD(6) }, |
---|
2115 | 2091 | { USB_DEVICE(0x2cb7, 0x0104), /* Fibocom NL678 series */ |
---|
2116 | 2092 | .driver_info = RSVD(4) | RSVD(5) }, |
---|
2117 | 2093 | { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0105, 0xff), /* Fibocom NL678 series */ |
---|
2118 | 2094 | .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 */ |
---|
2121 | 2095 | { 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) }, |
---|
2125 | 2096 | { USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */ |
---|
2126 | 2097 | { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) }, /* GosunCn GM500 RNDIS */ |
---|
2127 | 2098 | { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) }, /* GosunCn GM500 MBIM */ |
---|
.. | .. |
---|
2160 | 2131 | #ifdef CONFIG_PM |
---|
2161 | 2132 | .suspend = usb_wwan_suspend, |
---|
2162 | 2133 | .resume = usb_wwan_resume, |
---|
| 2134 | +#if 1 //Added by Quectel |
---|
| 2135 | + .reset_resume = usb_wwan_resume, |
---|
| 2136 | +#endif |
---|
2163 | 2137 | #endif |
---|
2164 | 2138 | }; |
---|
2165 | 2139 | |
---|
.. | .. |
---|
2184 | 2158 | &serial->interface->cur_altsetting->desc; |
---|
2185 | 2159 | unsigned long device_flags = id->driver_info; |
---|
2186 | 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 | + |
---|
2187 | 2256 | /* Never bind to the CD-Rom emulation interface */ |
---|
2188 | 2257 | if (iface_desc->bInterfaceClass == USB_CLASS_MASS_STORAGE) |
---|
2189 | 2258 | return -ENODEV; |
---|