kernel_optimize_test/drivers/usb
Peter Chen c19dffc0a9 usb: chipidea: udc: workaround for endpoint conflict issue
An endpoint conflict occurs when the USB is working in device mode
during an isochronous communication. When the endpointA IN direction
is an isochronous IN endpoint, and the host sends an IN token to
endpointA on another device, then the OUT transaction may be missed
regardless the OUT endpoint number. Generally, this occurs when the
device is connected to the host through a hub and other devices are
connected to the same hub.

The affected OUT endpoint can be either control, bulk, isochronous, or
an interrupt endpoint. After the OUT endpoint is primed, if an IN token
to the same endpoint number on another device is received, then the OUT
endpoint may be unprimed (cannot be detected by software), which causes
this endpoint to no longer respond to the host OUT token, and thus, no
corresponding interrupt occurs.

There is no good workaround for this issue, the only thing the software
could do is numbering isochronous IN from the highest endpoint since we
have observed most of device number endpoint from the lowest.

Cc: <stable@vger.kernel.org> #v3.14+
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-17 15:08:33 +02:00
..
atm
c67x00
chipidea usb: chipidea: udc: workaround for endpoint conflict issue 2019-06-17 15:08:33 +02:00
class USB: cdc-acm: clean up throttle handling 2019-04-29 16:14:41 +02:00
common usb: introduce usb_ep_type_string() function 2019-05-03 09:13:48 +03:00
core USB: Fix chipmunk-like voice when using Logitech C270 for recording audio. 2019-06-05 11:52:42 +02:00
dwc2 usb: gadget: dwc2: fix zlp handling 2019-06-06 13:51:57 +03:00
dwc3 drm pull request for 5.2 2019-05-08 21:35:19 -07:00
early drivers: Remove explicit invocations of mmiowb() 2019-04-08 12:01:02 +01:00
gadget usb: gadget: udc: lpc32xx: fix return value check in lpc32xx_udc_probe() 2019-06-06 13:51:57 +03:00
host xhci: Use %zu for printing size_t type 2019-05-22 18:17:16 +02:00
image
isp1760 usb: isp1760-hcd: Fix fall-through annotations 2019-05-01 18:13:52 +02:00
misc USB: rio500: simplify locking 2019-05-21 10:11:14 +02:00
mon
mtu3 usb: mtu3: fix up undefined reference to usb_debug_root 2019-05-21 10:08:56 +02:00
musb usb: musb: dsps: Use dev_get_drvdata() 2019-04-30 17:55:08 +02:00
phy usb: phy: mxs: Disable external charger detect in mxs_phy_hw_init() 2019-06-06 13:51:57 +03:00
renesas_usbhs USB: renesas_usbhs: fix spelling mistake "doens't" -> "doesn't" 2019-02-19 14:41:38 +01:00
roles usb: roles: Find the muxes by also matching against the device node 2019-02-14 10:52:25 +01:00
serial USB: serial: option: add Telit 0x1260 and 0x1261 compositions 2019-05-21 11:27:24 +02:00
storage USB: usb-storage: Add new ID to ums-realtek 2019-06-05 11:52:42 +02:00
typec usb: typec: Make sure an alt mode exist before getting its partner 2019-06-12 17:13:02 +02:00
usbip usbip: usbip_host: fix stub_dev lock context imbalance regression 2019-05-29 13:26:32 -07:00
wusbcore wusb: Remove unnecessary static function ckhdid_printf 2019-03-01 20:53:41 +01:00
Kconfig
Makefile
usb-skeleton.c