gl-infra-builder-FUjr/patches-wlan-ap/0015-ipq807x-add-support-novatel-rndis.patch
Jianhui Zhao 3fbc3ec336 ax1800/axt1800: upgrade wlan-ap to v2.6.0
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
2022-07-12 16:43:39 +08:00

70 lines
2.6 KiB
Diff

From 312017d0884366a9862abcc1e1df06acc8e7cf69 Mon Sep 17 00:00:00 2001
From: Jianhui Zhao <jianhui.zhao@gl-inet.com>
Date: Tue, 12 Jul 2022 12:23:17 +0800
Subject: [PATCH] ipq807x: add support novatel rndis
Signed-off-by: Jianhui Zhao <jianhui.zhao@gl-inet.com>
---
.../205-add-support-novatel-rndis.patch | 49 +++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 feeds/ipq807x/ipq807x/patches/205-add-support-novatel-rndis.patch
diff --git a/feeds/ipq807x/ipq807x/patches/205-add-support-novatel-rndis.patch b/feeds/ipq807x/ipq807x/patches/205-add-support-novatel-rndis.patch
new file mode 100644
index 00000000..23145826
--- /dev/null
+++ b/feeds/ipq807x/ipq807x/patches/205-add-support-novatel-rndis.patch
@@ -0,0 +1,49 @@
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/cdc_ether.c
+===================================================================
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/drivers/net/usb/cdc_ether.c
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/cdc_ether.c
+@@ -54,11 +54,19 @@ static int is_wireless_rndis(struct usb_
+ desc->bInterfaceProtocol == 3);
+ }
+
++static int is_novatel_rndis(struct usb_interface_descriptor *desc)
++{
++ return (desc->bInterfaceClass == USB_CLASS_MISC &&
++ desc->bInterfaceSubClass == 4 &&
++ desc->bInterfaceProtocol == 1);
++}
++
+ #else
+
+ #define is_rndis(desc) 0
+ #define is_activesync(desc) 0
+ #define is_wireless_rndis(desc) 0
++#define is_novatel_rndis(desc) 0
+
+ #endif
+
+@@ -150,7 +158,8 @@ int usbnet_generic_cdc_bind(struct usbne
+ */
+ rndis = (is_rndis(&intf->cur_altsetting->desc) ||
+ is_activesync(&intf->cur_altsetting->desc) ||
+- is_wireless_rndis(&intf->cur_altsetting->desc));
++ is_wireless_rndis(&intf->cur_altsetting->desc) ||
++ is_novatel_rndis(&intf->cur_altsetting->desc));
+
+ memset(info, 0, sizeof(*info));
+ info->control = intf;
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/rndis_host.c
+===================================================================
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/drivers/net/usb/rndis_host.c
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/net/usb/rndis_host.c
+@@ -627,6 +627,10 @@ static const struct usb_device_id produc
+ /* RNDIS for tethering */
+ USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
+ .driver_info = (unsigned long) &rndis_info,
++}, {
++ /* Novatel Verizon USB730L */
++ USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1),
++ .driver_info = (unsigned long) &rndis_info,
+ },
+ { }, // END
+ };
--
2.25.1