hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/usb/serial/option.c
....@@ -248,18 +248,31 @@
248248 #define QUECTEL_VENDOR_ID 0x2c7c
249249 /* These Quectel products use Quectel's vendor ID */
250250 #define QUECTEL_PRODUCT_EC21 0x0121
251
+#define QUECTEL_PRODUCT_EM061K_LTA 0x0123
252
+#define QUECTEL_PRODUCT_EM061K_LMS 0x0124
251253 #define QUECTEL_PRODUCT_EC25 0x0125
254
+#define QUECTEL_PRODUCT_EM060K_128 0x0128
252255 #define QUECTEL_PRODUCT_EG91 0x0191
253256 #define QUECTEL_PRODUCT_EG95 0x0195
254257 #define QUECTEL_PRODUCT_BG96 0x0296
255258 #define QUECTEL_PRODUCT_EP06 0x0306
256259 #define QUECTEL_PRODUCT_EM05G 0x030a
257260 #define QUECTEL_PRODUCT_EM060K 0x030b
261
+#define QUECTEL_PRODUCT_EM05G_CS 0x030c
262
+#define QUECTEL_PRODUCT_EM05GV2 0x030e
263
+#define QUECTEL_PRODUCT_EM05CN_SG 0x0310
258264 #define QUECTEL_PRODUCT_EM05G_SG 0x0311
265
+#define QUECTEL_PRODUCT_EM05CN 0x0312
266
+#define QUECTEL_PRODUCT_EM05G_GR 0x0313
267
+#define QUECTEL_PRODUCT_EM05G_RS 0x0314
259268 #define QUECTEL_PRODUCT_EM12 0x0512
260269 #define QUECTEL_PRODUCT_RM500Q 0x0800
261270 #define QUECTEL_PRODUCT_RM520N 0x0801
271
+#define QUECTEL_PRODUCT_EC200U 0x0901
262272 #define QUECTEL_PRODUCT_EC200S_CN 0x6002
273
+#define QUECTEL_PRODUCT_EC200A 0x6005
274
+#define QUECTEL_PRODUCT_EM061K_LWW 0x6008
275
+#define QUECTEL_PRODUCT_EM061K_LCN 0x6009
263276 #define QUECTEL_PRODUCT_EC200T 0x6026
264277 #define QUECTEL_PRODUCT_RM500K 0x7001
265278
....@@ -396,6 +409,8 @@
396409 #define LONGCHEER_VENDOR_ID 0x1c9e
397410
398411 /* 4G Systems products */
412
+/* This one was sold as the VW and Skoda "Carstick LTE" */
413
+#define FOUR_G_SYSTEMS_PRODUCT_CARSTICK_LTE 0x7605
399414 /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
400415 * It seems to contain a Qualcomm QSC6240/6290 chipset */
401416 #define FOUR_G_SYSTEMS_PRODUCT_W14 0x9603
....@@ -586,6 +601,11 @@
586601 /* Sierra Wireless products */
587602 #define SIERRA_VENDOR_ID 0x1199
588603 #define SIERRA_PRODUCT_EM9191 0x90d3
604
+
605
+/* UNISOC (Spreadtrum) products */
606
+#define UNISOC_VENDOR_ID 0x1782
607
+/* TOZED LT70-C based on UNISOC SL8563 uses UNISOC's vendor ID */
608
+#define TOZED_PRODUCT_LT70C 0x4055
589609
590610 /* Device flags */
591611
....@@ -1134,6 +1154,10 @@
11341154 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x90fa),
11351155 .driver_info = RSVD(3) },
11361156 /* u-blox products */
1157
+ { USB_DEVICE(UBLOX_VENDOR_ID, 0x1311) }, /* u-blox LARA-R6 01B */
1158
+ { USB_DEVICE(UBLOX_VENDOR_ID, 0x1312), /* u-blox LARA-R6 01B (RMNET) */
1159
+ .driver_info = RSVD(4) },
1160
+ { USB_DEVICE_INTERFACE_CLASS(UBLOX_VENDOR_ID, 0x1313, 0xff) }, /* u-blox LARA-R6 01B (ECM) */
11371161 { USB_DEVICE(UBLOX_VENDOR_ID, 0x1341) }, /* u-blox LARA-L6 */
11381162 { USB_DEVICE(UBLOX_VENDOR_ID, 0x1342), /* u-blox LARA-L6 (RMNET) */
11391163 .driver_info = RSVD(4) },
....@@ -1159,13 +1183,40 @@
11591183 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
11601184 .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
11611185 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
1186
+ { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05CN, 0xff),
1187
+ .driver_info = RSVD(6) | ZLP },
1188
+ { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05CN_SG, 0xff),
1189
+ .driver_info = RSVD(6) | ZLP },
11621190 { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G, 0xff),
1191
+ .driver_info = RSVD(6) | ZLP },
1192
+ { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_GR, 0xff),
1193
+ .driver_info = RSVD(6) | ZLP },
1194
+ { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05GV2, 0xff),
1195
+ .driver_info = RSVD(4) | ZLP },
1196
+ { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_CS, 0xff),
1197
+ .driver_info = RSVD(6) | ZLP },
1198
+ { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_RS, 0xff),
11631199 .driver_info = RSVD(6) | ZLP },
11641200 { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_SG, 0xff),
11651201 .driver_info = RSVD(6) | ZLP },
11661202 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0x00, 0x40) },
11671203 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x30) },
11681204 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x40) },
1205
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0xff, 0x30) },
1206
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0x00, 0x40) },
1207
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0xff, 0x40) },
1208
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x30) },
1209
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0x00, 0x40) },
1210
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x40) },
1211
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0xff, 0x30) },
1212
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0x00, 0x40) },
1213
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LMS, 0xff, 0xff, 0x40) },
1214
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0xff, 0x30) },
1215
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0x00, 0x40) },
1216
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LTA, 0xff, 0xff, 0x40) },
1217
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0xff, 0x30) },
1218
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0x00, 0x40) },
1219
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LWW, 0xff, 0xff, 0x40) },
11691220 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0xff, 0xff),
11701221 .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
11711222 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0, 0) },
....@@ -1180,6 +1231,10 @@
11801231 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0xff, 0x30) },
11811232 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0, 0x40) },
11821233 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0, 0) },
1234
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0900, 0xff, 0, 0), /* RM500U-CN */
1235
+ .driver_info = ZLP },
1236
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200A, 0xff, 0, 0) },
1237
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200U, 0xff, 0, 0) },
11831238 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200S_CN, 0xff, 0, 0) },
11841239 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) },
11851240 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500K, 0xff, 0x00, 0x00) },
....@@ -1281,6 +1336,14 @@
12811336 .driver_info = NCTRL(0) | RSVD(1) },
12821337 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1075, 0xff), /* Telit FN990 (PCIe) */
12831338 .driver_info = RSVD(0) },
1339
+ { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1080, 0xff), /* Telit FE990 (rmnet) */
1340
+ .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1341
+ { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1081, 0xff), /* Telit FE990 (MBIM) */
1342
+ .driver_info = NCTRL(0) | RSVD(1) },
1343
+ { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1082, 0xff), /* Telit FE990 (RNDIS) */
1344
+ .driver_info = NCTRL(2) | RSVD(3) },
1345
+ { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1083, 0xff), /* Telit FE990 (ECM) */
1346
+ .driver_info = NCTRL(0) | RSVD(1) },
12841347 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910),
12851348 .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) },
12861349 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM),
....@@ -1959,6 +2022,8 @@
19592022 .driver_info = RSVD(2) },
19602023 { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) },
19612024 { USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) },
2025
+ { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_CARSTICK_LTE),
2026
+ .driver_info = RSVD(0) },
19622027 { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14),
19632028 .driver_info = NCTRL(0) | NCTRL(1) },
19642029 { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W100),
....@@ -2170,6 +2235,10 @@
21702235 .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
21712236 { USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0db, 0xff), /* Foxconn T99W265 MBIM */
21722237 .driver_info = RSVD(3) },
2238
+ { USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0ee, 0xff), /* Foxconn T99W368 MBIM */
2239
+ .driver_info = RSVD(3) },
2240
+ { USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0f0, 0xff), /* Foxconn T99W373 MBIM */
2241
+ .driver_info = RSVD(3) },
21732242 { USB_DEVICE(0x1508, 0x1001), /* Fibocom NL668 (IOT version) */
21742243 .driver_info = RSVD(4) | RSVD(5) | RSVD(6) },
21752244 { USB_DEVICE(0x1782, 0x4d10) }, /* Fibocom L610 (AT mode) */
....@@ -2194,6 +2263,7 @@
21942263 { USB_DEVICE_AND_INTERFACE_INFO(OPPO_VENDOR_ID, OPPO_PRODUCT_R11, 0xff, 0xff, 0x30) },
21952264 { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x30) },
21962265 { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0, 0) },
2266
+ { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) },
21972267 { } /* Terminating entry */
21982268 };
21992269 MODULE_DEVICE_TABLE(usb, option_ids);