linux/drivers/usb/dwc3
Anurag Kumar Vulisha 729dcffd1e usb: dwc3: gadget: Add support for disabling U1 and U2 entries
Gadget applications may have a requirement to disable the U1 and U2
entry based on the usecase. Below are few usecases where the disabling
U1/U2 entries may be possible.

Usecase 1:
When combining dwc3 with an redriver for a USB Type-C device solution, it
sometimes have problems with leaving U1/U2 for certain hosts, resulting in
link training errors and reconnects. For this U1/U2 state entries may be
avoided.

Usecase 2:
When performing performance benchmarking on mass storage gadget the
U1 and U2 entries can be disabled.

Usecase 3:
When periodic transfers like ISOC transfers are used with bInterval
of 1 which doesn't require the link to enter into U1 or U2 state entry
(since ping is issued from host for every uframe interval). In this
case the U1 and U2 entry can be disabled.

Disablement of U1/U2 can be done by setting U1DevExitLat and U2DevExitLat
values to 0 in the BOS descriptor. Host on seeing 0 value for U1DevExitLat
and U2DevExitLat, it doesn't send SET_SEL requests to the gadget. There
may be some hosts which may send SET_SEL requests even after seeing 0 in
the UxDevExitLat of BOS descriptor. To aviod U1/U2 entries for these type
of hosts, dwc3 controller can be programmed to reject those U1/U2 requests
by not enabling ACCEPTUxENA bits in DCTL register.

This patch updates the same.

Signed-off-by: Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
Signed-off-by: Claus H. Stovgaard <cst@phaseone.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2019-06-18 11:58:30 +03:00
..
core.c usb: dwc3: gadget: Add support for disabling U1 and U2 entries 2019-06-18 11:58:30 +03:00
core.h usb: dwc3: gadget: Add support for disabling U1 and U2 entries 2019-06-18 11:58:30 +03:00
debug.h usb: dwc3: debug: Print GET_STATUS(device) tracepoint 2019-05-03 09:13:49 +03:00
debugfs.c usb: dwc3: debugfs: Print/set link state for peripheral mode 2018-11-26 09:06:31 +02:00
drd.c usb: dwc3: drd: Defer probe if extcon device is not found 2019-02-19 15:08:07 +01:00
dwc3-exynos.c usb: dwc3: exynos: Fix error handling of clk_prepare_enable 2019-01-28 15:31:11 +02:00
dwc3-haps.c usb: dwc3: haps: Workaround matching VID PID 2019-02-07 13:17:19 +02:00
dwc3-keystone.c usb: dwc3: keystone: Add support for ti,am654-dwc3 2019-01-28 12:51:29 +02:00
dwc3-meson-g12a.c usb: dwc3: meson-g12a: Add support for IRQ based OTG switching 2019-06-18 11:58:28 +03:00
dwc3-of-simple.c drm pull request for 5.2 2019-05-08 21:35:19 -07:00
dwc3-omap.c usb: dwc3: omap: don't miss events during suspend/resume 2018-02-12 10:53:18 +02:00
dwc3-pci.c usb: dwc3: pci: add support for Comet Lake PCH ID 2019-03-20 08:46:03 +02:00
dwc3-qcom.c usb: dwc3: qcom: Use of_clk_get_parent_count() 2019-06-18 11:58:29 +03:00
dwc3-st.c USB: dwc3: Remove redundant license text 2017-11-07 15:45:01 +01:00
ep0.c usb: dwc3: gadget: Add support for disabling U1 and U2 entries 2019-06-18 11:58:30 +03:00
gadget.c usb: dwc3: gadget: Add support for disabling U1 and U2 entries 2019-06-18 11:58:30 +03:00
gadget.h usb: dwc3: gadget: Add support for disabling U1 and U2 entries 2019-06-18 11:58:30 +03:00
host.c usb: dwc3: Support option to disable USB2 LPM 2018-11-26 09:06:31 +02:00
io.h USB: dwc3: Remove redundant license text 2017-11-07 15:45:01 +01:00
Kconfig usb: dwc3: qcom: Add support for booting with ACPI 2019-06-18 11:58:29 +03:00
Makefile usb: dwc3: Add Amlogic G12A DWC3 glue 2019-05-03 09:13:47 +03:00
trace.c USB: dwc3: Remove redundant license text 2017-11-07 15:45:01 +01:00
trace.h usb: dwc3: trace: pass trace buffer size to decoding functions 2019-02-04 15:43:38 +02:00
ulpi.c USB: dwc3: Remove redundant license text 2017-11-07 15:45:01 +01:00