android_kernel_msm-6.1_noth.../include/linux/usb
Bjørn Mork 50a0ffaf75 net: cdc_ncm/cdc_mbim: rework probing of NCM/MBIM functions
The NCM class match in the cdc_mbim driver is confusing and
cause unexpected behaviour. The USB core guarantees that a
USB interface is in altsetting 0 when probing starts. This
means that devices implementing a NCM 1.0 backwards
compatible MBIM function (a "NCM/MBIM function") always hit
the NCM entry in the cdc_mbim driver match table. Such
functions will never match any of the MBIM entries.

This causes unexpeced behaviour for cases where the NCM and
MBIM entries are differet, which is currently the case for
all except Ericsson devices.

Improve the probing of NCM/MBIM functions by looking up the
device again in the cdc_mbim match table after switching to
the MBIM identity.

The shared altsetting selection is updated to better
accommodate the new probing logic, returning the preferred
altsetting for the control interface instead of the data
interface. The control interface altsetting update is moved
to the cdc_mbim driver. It is never necessary to change the
control interface altsetting for NCM.

Cc: Greg Suarez <gsuarez@smithmicro.com>
Reported by: Yu-an Shih <yshih@nvidia.com>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-05-13 17:46:09 -04:00
..
association.h
atmel_usba_udc.h
audio-v2.h
audio.h
c67x00.h
cdc-wdm.h
cdc_ncm.h net: cdc_ncm/cdc_mbim: rework probing of NCM/MBIM functions 2014-05-13 17:46:09 -04:00
ch9.h
chipidea.h usb: chipidea: udc: add maximum-speed = full-speed option 2014-02-24 17:07:52 -08:00
composite.h Merge branch 'master' into for-next 2014-02-20 14:54:28 +01:00
ehci_def.h
ehci_pdriver.h ehci-platform: add pre_setup() method to platform data 2013-06-11 16:10:45 +09:00
ezusb.h
functionfs.h usb: gadget: FunctionFS: Remove compatibility layer 2013-12-12 13:43:40 -06:00
g_hid.h
gadget.h usb: gadget: add "maxpacket_limit" field to struct usb_ep 2013-12-17 13:17:41 -06:00
gadget_configfs.h
gpio_vbus.h
hcd.h storage: accept some UAS devices if streams are unavailable 2014-03-04 15:41:09 -08:00
input.h
iowarrior.h
irda.h
isp116x.h
isp1301.h
isp1362.h
isp1760.h
m66592.h
msm_hsusb.h usb: phy: msm: Move mach dependent code to platform data 2014-01-09 00:06:48 -08:00
msm_hsusb_hw.h
musb-omap.h
musb-ux500.h
musb.h usb: musb: dsps: add support for suspend and resume 2013-11-26 10:58:16 -06:00
net2280.h
of.h usb: of: fix build breakage caused by recent patches 2013-07-30 09:09:15 +03:00
ohci_pdriver.h
otg-fsm.h usb: phy: move OTG FSM header 2013-11-26 10:58:18 -06:00
otg.h usb: add devicetree helpers for determining dr_mode and phy_type 2013-06-17 13:47:09 -07:00
phy.h usb: phy: Add set_wakeup API 2014-03-05 14:40:08 -06:00
phy_companion.h
quirks.h
r8a66597.h
renesas_usbhs.h
rndis_host.h
samsung_usb_phy.h
serial.h USB: serial: make bulk_out_size a lower limit 2014-03-12 12:44:49 -07:00
sl811.h
storage.h
tegra_usb_phy.h usb: phy: tegra: Program new PHY parameters 2013-08-12 13:29:52 -05:00
tilegx.h
uas.h uas: Pack iu struct definitions 2014-03-04 15:38:11 -08:00
ulpi.h
usb_phy_gen_xceiv.h usb: patches for v3.13 2013-10-24 16:18:40 +01:00
usbnet.h usbnet: include wait queue head in device structure 2014-03-27 14:59:10 -04:00
wusb-wa.h usb: wusbcore: preserve endianness of cached descriptors 2013-10-19 05:19:21 -07:00
wusb.h usb: wusbcore: fix deadlock in wusbhc_gtk_rekey 2013-12-02 15:21:04 -08:00