linux_dsm_epyc7002/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_ncm.h net: cdc_ncm/cdc_mbim: rework probing of NCM/MBIM functions 2014-05-13 17:46:09 -04:00
cdc-wdm.h
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
ezusb.h
functionfs.h
g_hid.h
gadget_configfs.h
gadget.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_hw.h
msm_hsusb.h
musb-omap.h
musb-ux500.h
musb.h
net2280.h
of.h
ohci_pdriver.h
otg-fsm.h
otg.h
phy_companion.h
phy.h usb: phy: Add set_wakeup API 2014-03-05 14:40:08 -06:00
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
tilegx.h
uas.h uas: Pack iu struct definitions 2014-03-04 15:38:11 -08:00
ulpi.h
usb_phy_gen_xceiv.h
usbnet.h usbnet: include wait queue head in device structure 2014-03-27 14:59:10 -04:00
wusb-wa.h
wusb.h