780-usb-net-MeigLink_modem_support.patch 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. From f81700b6bb2eda3756247bce472d8eaf6f466f61 Mon Sep 17 00:00:00 2001
  2. From: OpenWrt community <[email protected]>
  3. Date: Wed, 13 Jul 2022 13:49:26 +0200
  4. Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  5. ---
  6. drivers/net/usb/qmi_wwan.c | 1 +
  7. drivers/usb/serial/option.c | 7 +++++++
  8. 2 files changed, 8 insertions(+)
  9. --- a/drivers/net/usb/qmi_wwan.c
  10. +++ b/drivers/net/usb/qmi_wwan.c
  11. @@ -1090,6 +1090,11 @@ static const struct usb_device_id produc
  12. USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7),
  13. .driver_info = (unsigned long)&qmi_wwan_info,
  14. },
  15. + { /* Meiglink SGM828 */
  16. + USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d49, USB_CLASS_VENDOR_SPEC, 0x10, 0x05),
  17. + .driver_info = (unsigned long)&qmi_wwan_info,
  18. + },
  19. +
  20. {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0122)}, /* Quectel RG650V */
  21. {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0125)}, /* Quectel EC25, EC20 R2.0 Mini PCIe */
  22. {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0306)}, /* Quectel EP06/EG06/EM06 */
  23. @@ -1097,6 +1102,7 @@ static const struct usb_device_id produc
  24. {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)}, /* Quectel EM160R-GL */
  25. {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)}, /* Quectel RM500Q-GL */
  26. {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0801)}, /* Quectel RM520N */
  27. + {QMI_MATCH_FF_FF_FF(0x05c6, 0xf601)}, /* MeigLink SLM750 */
  28. /* 3. Combined interface devices matching on interface number */
  29. {QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */
  30. --- a/drivers/usb/serial/option.c
  31. +++ b/drivers/usb/serial/option.c
  32. @@ -247,6 +247,11 @@ static void option_instat_callback(struc
  33. #define UBLOX_PRODUCT_R410M 0x90b2
  34. /* These Yuga products use Qualcomm's vendor ID */
  35. #define YUGA_PRODUCT_CLM920_NC5 0x9625
  36. +/* These MeigLink products use Qualcomm's vendor ID */
  37. +#define MEIGLINK_PRODUCT_SLM750 0xf601
  38. +
  39. +#define MEIGLINK_VENDOR_ID 0x2dee
  40. +#define MEIGLINK_PRODUCT_SLM828 0x4d49
  41. #define QUECTEL_VENDOR_ID 0x2c7c
  42. /* These Quectel products use Quectel's vendor ID */
  43. @@ -1156,6 +1161,11 @@ static const struct usb_device_id option
  44. { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
  45. { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
  46. .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
  47. + /* MeiG */
  48. + { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x01) },
  49. + { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x02) },
  50. + { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x03) },
  51. + { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x04) },
  52. /* Quectel products using Qualcomm vendor ID */
  53. { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
  54. { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
  55. @@ -1197,6 +1207,11 @@ static const struct usb_device_id option
  56. .driver_info = ZLP },
  57. { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
  58. .driver_info = RSVD(4) },
  59. + /* Meiglink products using Qualcomm vendor ID */
  60. + // Works OK. In case of some issues check macros that are used by Quectel Products
  61. + { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0xff, 0xff),
  62. + .driver_info = NUMEP2 },
  63. + { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0, 0) },
  64. { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
  65. .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
  66. { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },