From 78666c7ba0735b91de50ed9fd98e47d9686a84a2 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 20 Apr 2018 19:00:33 +0200 Subject: [PATCH] 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 --- ...ption-fix-dwm-158-3g-modem-interface.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch 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 00000000000..eccfbe56126 --- /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 +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 +[ johan: add Lars's comment on the interface layout ] +Cc: Lars Melin +Cc: stable # c3a65808f04a +Signed-off-by: Johan Hovold +--- + 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 },