linux/drivers/usb/dwc3
Thinh Nguyen d94ea53198 usb: dwc3: gadget: Properly set maxpacket limit
Currently the calculation of max packet size limit for IN endpoints is
too restrictive. This prevents a matching of a capable hardware endpoint
during configuration. Below is the minimum recommended HW configuration
to support a particular endpoint setup from the databook:

For OUT endpoints, the databook recommended the minimum RxFIFO size to
be at least 3x MaxPacketSize + 3x setup packets size (8 bytes each) +
clock crossing margin (16 bytes).

For IN endpoints, the databook recommended the minimum TxFIFO size to be
at least 3x MaxPacketSize for endpoints that support burst. If the
endpoint doesn't support burst or when the device is operating in USB
2.0 mode, a minimum TxFIFO size of 2x MaxPacketSize is recommended.

Base on these recommendations, we can calculate the MaxPacketSize limit
of each endpoint. This patch revises the IN endpoint MaxPacketSize limit
and also sets the MaxPacketSize limit for OUT endpoints.

Reference: Databook 3.30a section 3.2.2 and 3.2.3

Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-04-16 11:02:27 +03:00
..
core.c usb: dwc3: core: don't do suspend for device mode if already suspended 2020-03-15 11:31:36 +02:00
core.h usb: dwc3: gadget: Properly set maxpacket limit 2020-04-16 11:02:27 +03:00
debug.h usb: dwc3: debug: fix string position formatting mixup with ret and len 2020-02-11 08:45:45 +02:00
debugfs.c usb: dwc3: create debugfs directory under usb root 2019-11-14 11:14:54 +08:00
drd.c usb: dwc3: fix up for role switch API change 2020-03-16 08:23:27 +01:00
dwc3-exynos.c usb: dwc3: exynos: Add support for Exynos5422 suspend clk 2020-03-15 11:08:27 +02:00
dwc3-haps.c usb: dwc3: haps: Workaround matching VID PID 2019-02-07 13:17:19 +02:00
dwc3-keystone.c USB: Changes for v5.4 merge window 2019-09-02 19:20:57 +02:00
dwc3-meson-g12a.c USB: changes for v5.7 merge window 2020-03-16 08:22:49 +01:00
dwc3-of-simple.c usb: dwc3: of-simple: add a shutdown 2019-10-29 12:56:11 +02:00
dwc3-omap.c USB: Changes for v5.4 merge window 2019-09-02 19:20:57 +02:00
dwc3-pci.c usb: dwc3: pci: add ID for the Intel Comet Lake -V variant 2020-01-22 10:11:41 +01:00
dwc3-qcom.c usb: dwc3: qcom: Replace <linux/clk-provider.h> by <linux/of_clk.h> 2020-03-15 11:32:56 +02:00
dwc3-st.c usb: dwc3: st: Add of_dev_put() in probe function 2019-08-28 13:04:58 +03:00
ep0.c usb: dwc3: gadget: Check END_TRANSFER completion 2020-01-15 10:39:23 +01:00
gadget.c usb: dwc3: gadget: Properly set maxpacket limit 2020-04-16 11:02:27 +03:00
gadget.h usb: dwc3: gadget: Don't send unintended link state change 2020-01-15 10:39:19 +01:00
host.c usb: dwc3: Remove kernel doc annotation where it's not needed 2020-03-15 11:08:53 +02:00
io.h
Kconfig usb: dwc3: Fix Kconfig indentation 2019-11-21 14:39:39 +01:00
Makefile usb: dwc3: Add Amlogic G12A DWC3 glue 2019-05-03 09:13:47 +03:00
trace.c
trace.h usb: dwc3: trace: print enqueue/dequeue pointers too 2020-03-15 11:06:39 +02:00
ulpi.c