aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch
diff options
context:
space:
mode:
authorGiuseppe Lippolis <giu.lippolis@gmail.com>2018-04-20 19:00:33 +0200
committerMathias Kresin <dev@kresin.me>2018-04-23 22:07:22 +0200
commit78666c7ba0735b91de50ed9fd98e47d9686a84a2 (patch)
treee6e61c1bd73dbb9228bb6e355c0416855ca2003d /target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch
parent0b204902075157dbb002ea04f41a5b1a4fbe848c (diff)
downloadupstream-78666c7ba0735b91de50ed9fd98e47d9686a84a2.tar.gz
upstream-78666c7ba0735b91de50ed9fd98e47d9686a84a2.tar.bz2
upstream-78666c7ba0735b91de50ed9fd98e47d9686a84a2.zip
kernel: fix usb interface on 3G dwm-158 modem
The current option driver binds to the usb interface 2,3,4,5. But the interface 4 and 5 doesn't answer to the AT commands. On the new openwrt configuration the wwan script select the 5th interface as control interface, failing to establish the 3G connection. Backport the fix for the problem. Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
Diffstat (limited to 'target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch')
-rw-r--r--target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch b/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch
new file mode 100644
index 0000000000..eccfbe5612
--- /dev/null
+++ b/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch
@@ -0,0 +1,42 @@
+From ebe37f322acbb95966094cb2b0fff6e44b5893a6 Mon Sep 17 00:00:00 2001
+From: Giuseppe Lippolis <giu.lippolis@gmail.com>
+Date: Mon, 23 Apr 2018 09:03:06 +0200
+Subject: [PATCH] USB: serial: option: fix dwm-158 3g modem interface
+
+The dwm-158 interface 4 and 5 doesn't answer to the AT commands
+and doesn't appears a option interface.
+Tested on openwrt distribution (kernel 4.14 using the old blacklist
+definitions).
+
+Lars Melin also writes:
+
+ Blacklisting interface 4 and 5 is correct because:
+
+ MI_00 D-Link Mobile Broadband Device (cdc_ether)
+ MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp modem)
+ MI_03 D-Link HSPA+DataCard NMEA Device
+ MI_04 D-Link HSPA+DataCard Speech Port
+ MI_05 D-Link HSPA+DataCard Debug Port
+ MI_06 USB Mass Storage Device
+
+Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
+[ johan: add Lars's comment on the interface layout ]
+Cc: Lars Melin <larsm17@gmail.com>
+Cc: stable <stable@vger.kernel.org> # c3a65808f04a
+Signed-off-by: Johan Hovold <johan@kernel.org>
+---
+ drivers/usb/serial/option.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -2046,7 +2046,8 @@ static const struct usb_device_id option
+ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
+ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
+ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
+- { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
++ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff), /* D-Link DWM-158 */
++ .driver_info = (kernel_ulong_t)&cinterion_rmnet2_blacklist },
+ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) }, /* D-Link DWM-157 C1 */
+ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */
+ .driver_info = (kernel_ulong_t)&net_intf4_blacklist },