linux/drivers/net/usb
Kristian Evensen e4bf63482c qmi_wwan: Add quirk for Quectel dynamic config
Most, if not all, Quectel devices use dynamic interface numbers, and
users are able to change the USB configuration at will. Matching on for
example interface number is therefore not possible.

Instead, the QMI device can be identified by looking at the interface
class, subclass and protocol (all 0xff), as well as the number of
endpoints. The reason we need to look at the number of endpoints, is
that the diagnostic port interface has the same class, subclass and
protocol as QMI. However, the diagnostic port only has two endpoints,
while QMI has three.

Until now, we have identified the QMI device by combining a match on
class, subclass and protocol, with a call to the function
quectel_diag_detect(). In quectel_diag_detect(), we check if the number
of endpoints matches for known Quectel vendor/product ids.

Adding new vendor/product ids to quectel_diag_detect() is not a good
long-term solution. This commit replaces the function with a quirk, and
applies the quirk to affected Quectel devices that I have been able to
test the change with (EP06, EM12 and EC25). If the quirk is set and the
number of endpoints equal two, we return from qmi_wwan_probe() with
-ENODEV.

Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
Acked-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-08 16:25:56 -07:00
..
aqc111.c net: usb: aqc111: Extend HWID table by QNAP device 2019-03-26 11:19:42 -07:00
aqc111.h net: usb: aqc111: Add support for wake on LAN by MAGIC packet 2018-11-27 15:46:07 -08:00
asix_common.c asix: Check for supported Wake-on-LAN modes 2018-09-29 11:31:29 -07:00
asix_devices.c net: usb: asix: ax88772_bind return error when hw_reset fail 2019-01-24 22:33:11 -08:00
asix.h
ax88172a.c
ax88179_178a.c ax88179_178a: Check for supported Wake-on-LAN modes 2018-09-29 11:31:29 -07:00
catc.c net: usb: Mark expected switch fall-throughs 2018-06-30 20:47:16 +09:00
cdc_eem.c net: cdc_eem: clean up bind error path 2018-03-07 15:39:27 -05:00
cdc_ether.c net: usb: aqc111: Extend HWID table by QNAP device 2019-03-26 11:19:42 -07:00
cdc_mbim.c ipv6: Move ipv6 stubs to a separate header file 2019-03-29 10:53:45 -07:00
cdc_ncm.c net: cdc_ncm: remove set but not used variable 'ctx' 2018-10-12 09:45:36 -07:00
cdc_subset.c
cdc-phonet.c net: usb: cdc-phonet: use struct_size() in alloc_netdev() 2019-02-08 22:57:27 -08:00
ch9200.c
cx82310_eth.c
dm9601.c
gl620a.c
hso.c USB: hso: Fix OOB memory access in hso_probe/hso_get_config_data 2018-12-12 15:41:10 -08:00
huawei_cdc_ncm.c
int51x1.c
ipheth.c usbnet: ipheth: fix potential recvmsg bug and recvmsg bug 2 2018-11-27 14:57:16 -08:00
kalmia.c net: kalmia: clean up bind error path 2018-03-07 15:39:27 -05:00
kaweth.c net: usb: kaweth: use irqsave() in USB's complete callback 2018-06-22 13:57:45 +09:00
Kconfig net: Don't default Aquantia USB driver to 'y' 2018-11-29 16:01:34 -08:00
lan78xx.c net: phy: fixed-phy: Drop GPIO from fixed_phy_add() 2019-02-04 18:33:36 -08:00
lan78xx.h net: lan78xx: Switch to SPDX identifier 2018-09-05 22:20:45 -07:00
lg-vl600.c net: drivers/net: Remove unnecessary skb_copy_expand OOM messages 2018-03-15 14:28:03 -04:00
Makefile net: usb: aqc111: Driver skeleton for Aquantia AQtion USB to 5GbE 2018-11-27 15:46:06 -08:00
mcs7830.c
net1080.c
pegasus.c net: usb: pegasus: Mark expected switch fall-through 2019-02-08 11:54:06 -08:00
pegasus.h
plusb.c
qmi_wwan.c qmi_wwan: Add quirk for Quectel dynamic config 2019-04-08 16:25:56 -07:00
r8152.c r8152: Refresh MAC address during USBDEVFS_RESET 2019-04-06 18:21:46 -07:00
rndis_host.c
rtl8150.c net: usb: rtl8150: mark expected switch fall-through 2019-02-08 11:54:27 -08:00
sierra_net.c net: usb: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
smsc75xx.c net/usb: cancel pending work when unbinding smsc75xx 2018-10-04 13:51:30 -07:00
smsc75xx.h
smsc95xx.c usbnet: smsc95xx: check for csum being in last four bytes 2018-11-16 20:16:19 -08:00
smsc95xx.h
sr9700.c drivers: net: Remove unnecessary semicolon 2019-03-01 23:13:49 -08:00
sr9700.h
sr9800.c sr9800: Check for supported Wake-on-LAN modes 2018-09-29 11:31:29 -07:00
sr9800.h
usbnet.c net: usbnet: make driver_info const 2018-10-02 22:22:46 -07:00
zaurus.c