mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-11-24 14:06:15 +00:00
487ca61f91
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.61 Manually rebased: bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch All other patches automatically rebased. Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Signed-off-by: John Audia <therealgraysky@proton.me> Link: https://github.com/openwrt/openwrt/pull/16959 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
70 lines
3.5 KiB
Diff
70 lines
3.5 KiB
Diff
From f81700b6bb2eda3756247bce472d8eaf6f466f61 Mon Sep 17 00:00:00 2001
|
|
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
|
|
Date: Wed, 13 Jul 2022 13:49:26 +0200
|
|
Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
|
|
|
---
|
|
drivers/net/usb/qmi_wwan.c | 1 +
|
|
drivers/usb/serial/option.c | 7 +++++++
|
|
2 files changed, 8 insertions(+)
|
|
|
|
--- a/drivers/net/usb/qmi_wwan.c
|
|
+++ b/drivers/net/usb/qmi_wwan.c
|
|
@@ -1084,12 +1084,18 @@ static const struct usb_device_id produc
|
|
USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7),
|
|
.driver_info = (unsigned long)&qmi_wwan_info,
|
|
},
|
|
+ { /* Meiglink SGM828 */
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d49, USB_CLASS_VENDOR_SPEC, 0x10, 0x05),
|
|
+ .driver_info = (unsigned long)&qmi_wwan_info,
|
|
+ },
|
|
+
|
|
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0125)}, /* Quectel EC25, EC20 R2.0 Mini PCIe */
|
|
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0306)}, /* Quectel EP06/EG06/EM06 */
|
|
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)}, /* Quectel EG12/EM12 */
|
|
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)}, /* Quectel EM160R-GL */
|
|
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)}, /* Quectel RM500Q-GL */
|
|
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0801)}, /* Quectel RM520N */
|
|
+ {QMI_MATCH_FF_FF_FF(0x05c6, 0xf601)}, /* MeigLink SLM750 */
|
|
|
|
/* 3. Combined interface devices matching on interface number */
|
|
{QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */
|
|
--- a/drivers/usb/serial/option.c
|
|
+++ b/drivers/usb/serial/option.c
|
|
@@ -247,6 +247,11 @@ static void option_instat_callback(struc
|
|
#define UBLOX_PRODUCT_R410M 0x90b2
|
|
/* These Yuga products use Qualcomm's vendor ID */
|
|
#define YUGA_PRODUCT_CLM920_NC5 0x9625
|
|
+/* These MeigLink products use Qualcomm's vendor ID */
|
|
+#define MEIGLINK_PRODUCT_SLM750 0xf601
|
|
+
|
|
+#define MEIGLINK_VENDOR_ID 0x2dee
|
|
+#define MEIGLINK_PRODUCT_SLM828 0x4d49
|
|
|
|
#define QUECTEL_VENDOR_ID 0x2c7c
|
|
/* These Quectel products use Quectel's vendor ID */
|
|
@@ -1160,6 +1165,11 @@ static const struct usb_device_id option
|
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
|
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
|
|
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
|
|
+ /* MeiG */
|
|
+ { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x01) },
|
|
+ { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x02) },
|
|
+ { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x03) },
|
|
+ { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x04) },
|
|
/* Quectel products using Qualcomm vendor ID */
|
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
|
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
|
|
@@ -1201,6 +1211,11 @@ static const struct usb_device_id option
|
|
.driver_info = ZLP },
|
|
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
|
.driver_info = RSVD(4) },
|
|
+ /* Meiglink products using Qualcomm vendor ID */
|
|
+ // Works OK. In case of some issues check macros that are used by Quectel Products
|
|
+ { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0xff, 0xff),
|
|
+ .driver_info = NUMEP2 },
|
|
+ { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0, 0) },
|
|
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
|
|
.driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
|
|
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
|