Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

qmi_wwan/cdc_ether: move Novatel E371 (1410:9011) to qmi_wwan

This device provides QMI and ethernet functionality via a standard CDC
ethernet descriptor. But when driven by cdc_ether, the QMI
functionality is unavailable because only cdc_ether can claim the USB
interface. Thus blacklist the device in cdc_ether and add its IDs to
qmi_wwan, which enables both QMI and ethernet simultaneously.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Yegor Yefremov and committed by
David S. Miller
7b5939ba fea1829f

+14
+7
drivers/net/usb/cdc_ether.c
··· 625 625 .driver_info = 0, 626 626 }, 627 627 628 + /* Novatel Expedite E371 - handled by qmi_wwan */ 629 + { 630 + USB_DEVICE_AND_INTERFACE_INFO(NOVATEL_VENDOR_ID, 0x9011, USB_CLASS_COMM, 631 + USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), 632 + .driver_info = 0, 633 + }, 634 + 628 635 /* AnyDATA ADU960S - handled by qmi_wwan */ 629 636 { 630 637 USB_DEVICE_AND_INTERFACE_INFO(0x16d5, 0x650a, USB_CLASS_COMM,
+7
drivers/net/usb/qmi_wwan.c
··· 500 500 USB_CDC_PROTO_NONE), 501 501 .driver_info = (unsigned long)&qmi_wwan_info, 502 502 }, 503 + { /* Novatel Expedite E371 */ 504 + USB_DEVICE_AND_INTERFACE_INFO(0x1410, 0x9011, 505 + USB_CLASS_COMM, 506 + USB_CDC_SUBCLASS_ETHERNET, 507 + USB_CDC_PROTO_NONE), 508 + .driver_info = (unsigned long)&qmi_wwan_info, 509 + }, 503 510 { /* Dell Wireless 5800 (Novatel E362) */ 504 511 USB_DEVICE_AND_INTERFACE_INFO(0x413C, 0x8195, 505 512 USB_CLASS_COMM,