fcf0a412ae800842bfa63bb30b708f844a6318d8
[openwrt/openwrt.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 diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
12 index 8f1487f41085..d992985d599e 100644
13 --- a/drivers/net/usb/qmi_wwan.c
14 +++ b/drivers/net/usb/qmi_wwan.c
15 @@ -1085,6 +1085,7 @@ static const struct usb_device_id products[] = {
16 {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)}, /* Quectel EG12/EM12 */
17 {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)}, /* Quectel EM160R-GL */
18 {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)}, /* Quectel RM500Q-GL */
19 + {QMI_MATCH_FF_FF_FF(0x05c6, 0xf601)}, /* MeigLink SLM750 */
20
21 /* 3. Combined interface devices matching on interface number */
22 {QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */
23 diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
24 index de59fa919540..9f00d047f5e9 100644
25 --- a/drivers/usb/serial/option.c
26 +++ b/drivers/usb/serial/option.c
27 @@ -243,6 +243,8 @@ static void option_instat_callback(struct urb *urb);
28 #define UBLOX_PRODUCT_R6XX 0x90fa
29 /* These Yuga products use Qualcomm's vendor ID */
30 #define YUGA_PRODUCT_CLM920_NC5 0x9625
31 +/* These MeigLink products use Qualcomm's vendor ID */
32 +#define MEIGLINK_PRODUCT_SLM750 0xf601
33
34 #define QUECTEL_VENDOR_ID 0x2c7c
35 /* These Quectel products use Quectel's vendor ID */
36 @@ -1133,6 +1135,11 @@ static const struct usb_device_id option_ids[] = {
37 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) },
38 { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
39 .driver_info = RSVD(4) },
40 + /* Meiglink products using Qualcomm vendor ID */
41 + // Works OK. In case of some issues check macros that are used by Quectel Products
42 + { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0xff, 0xff),
43 + .driver_info = NUMEP2 },
44 + { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0, 0) },
45 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
46 .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
47 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
48 --
49