linux/drivers/net/usb
Bjørn Mork 230718bda1 net: qmi_wwan: bind to both control and data interface
Always bind to control interface regardless of whether
it is a shared interface or not.

A QMI/wwan function is required to provide both a control
interface (QMI) and a data interface (wwan).  All devices
supported by this driver do so.  But the vendors may
choose to use different USB descriptor layouts, and some
vendors even allow the same device to present different
layouts.

Most of these devices use a USB descriptor layout with a
single USB interface for both control and data.  But some
split control and data into two interfaces, bound together
by a CDC Union descriptor on the control interface. Before
the cdc-wdm subdriver support was added, this split was
used to let cdc-wdm drive the QMI control interface and
qmi_wwan drive the wwna data interface.

This split driver model has a number of issues:
 - qmi_wwan must match on the data interface descriptor,
   which often are indistiguishable from data interfaces
   belonging to other CDC (like) functions like ACM
 - supporting a single QMI/wwan function requires adding
   the device to two drivers
 - syncronizing the probes among a number of drivers, to
   ensure selecting the correct driver, is difficult unless
   all drivers match on the same interface

This patch resolves these problems by using the same
probing mechanism as cdc-ether for devices with a two-
interface USB descriptor layout.  This makes the driver
behave consistently, supporting both the control and data
part of the QMI/wwan function, regardless of the USB
descriptors.

Cc: Thomas Schäfer <tschaefer@t-online.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-06-19 15:04:14 -07:00
..
asix.c asix: allow full size 8021Q frames to be received 2012-05-29 17:30:07 -04:00
catc.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
cdc_eem.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
cdc_ether.c USB 3.5-rc1 pull request 2012-05-22 15:50:46 -07:00
cdc_ncm.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
cdc_subset.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
cdc-phonet.c usbnet:cdc-phonet: remove usb_get/put_dev in .probe and .disconnect 2012-06-12 18:50:23 -07:00
cx82310_eth.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
dm9601.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
gl620a.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
hso.c TTY pull request for 3.5-rc1 2012-05-22 16:12:24 -07:00
int51x1.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
ipheth.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
kalmia.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
kaweth.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
Kconfig net: qmi_wwan: fix build error due to cdc-wdm dependecy 2012-03-19 18:17:18 -04:00
lg-vl600.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
Makefile net: usb: qmi_wwan: New driver for Huawei QMI based WWAN devices 2012-03-09 13:09:17 -08:00
mcs7830.c mcs7830: Implement link state detection 2012-06-02 17:09:08 -04:00
net1080.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
pegasus.c usbnet:pegasus: remove usb_get/put_dev in .probe and .disconnect 2012-06-12 18:50:23 -07:00
pegasus.h
plusb.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
qmi_wwan.c net: qmi_wwan: bind to both control and data interface 2012-06-19 15:04:14 -07:00
rndis_host.c USB 3.5-rc1 pull request 2012-05-22 15:50:46 -07:00
rtl8150.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
sierra_net.c net: sierra_net: device IDs for Aircard 320U++ 2012-06-06 10:40:32 -07:00
smsc75xx.c USB 3.5-rc1 pull request 2012-05-22 15:50:46 -07:00
smsc75xx.h smsc75xx: replace 0xffff with PHY_INT_SRC_CLEAR_ALL 2012-05-07 23:43:56 -04:00
smsc95xx.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
smsc95xx.h
usbnet.c usbnet: don't initialize transfer buffer before submit status URB 2012-06-12 18:51:08 -07:00
zaurus.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00