e901deb8abd9c1ff94d234d8c818b812aa76e2e3
[openwrt/staging/noltari.git] / target / linux / generic / hack-5.15 / 780-usb-net-MeigLink_modem_support.patch
1 From f81700b6bb2eda3756247bce472d8eaf6f466f61 Mon Sep 17 00:00:00 2001
2 From: OpenWrt community <openwrt-devel@lists.openwrt.org>
3 Date: Wed, 13 Jul 2022 13:49:26 +0200
4 Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
5
6 ---
7 drivers/net/usb/qmi_wwan.c | 1 +
8 drivers/usb/serial/option.c | 7 +++++++
9 2 files changed, 8 insertions(+)
10
11 --- a/drivers/net/usb/qmi_wwan.c
12 +++ b/drivers/net/usb/qmi_wwan.c
13 @@ -1086,6 +1086,7 @@ static const struct usb_device_id produc
14 {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)}, /* Quectel EM160R-GL */
15 {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)}, /* Quectel RM500Q-GL */
16 {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0801)}, /* Quectel RM520N */
17 + {QMI_MATCH_FF_FF_FF(0x05c6, 0xf601)}, /* MeigLink SLM750 */
18
19 /* 3. Combined interface devices matching on interface number */
20 {QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */
21 --- a/drivers/usb/serial/option.c
22 +++ b/drivers/usb/serial/option.c
23 @@ -244,6 +244,8 @@ static void option_instat_callback(struc
24 #define UBLOX_PRODUCT_R410M 0x90b2
25 /* These Yuga products use Qualcomm's vendor ID */
26 #define YUGA_PRODUCT_CLM920_NC5 0x9625
27 +/* These MeigLink products use Qualcomm's vendor ID */
28 +#define MEIGLINK_PRODUCT_SLM750 0xf601
29
30 #define QUECTEL_VENDOR_ID 0x2c7c
31 /* These Quectel products use Quectel's vendor ID */
32 @@ -1162,6 +1164,11 @@ static const struct usb_device_id option
33 .driver_info = ZLP },
34 { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
35 .driver_info = RSVD(4) },
36 + /* Meiglink products using Qualcomm vendor ID */
37 + // Works OK. In case of some issues check macros that are used by Quectel Products
38 + { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0xff, 0xff),
39 + .driver_info = NUMEP2 },
40 + { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0, 0) },
41 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
42 .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
43 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },