zephyr/drivers/usb/device
Loic Poulain eb83cda770 usb: dc_dw: Improve TX perf and reliability
During large USB transfer it's pretty common to call ep_write whereas
the previous TX transfer is not achieved and so the TX FIFO space is
not available. Sleeping 20ms in this case introduce a relatively high
latency and reduce the throughput.

This can be observed when pinging the board with CDC-ECM net class.
ping reply is split into 2 USB TX transfer, the second one is only
triggered after 20ms, making ping latency > 20ms.

To fix this, just continuously read the FIFO availabilty and fire TX
as soon as possible.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
2017-11-09 09:15:55 -06:00
..
CMakeLists.txt Introduce cmake-based rewrite of KBuild 2017-11-08 20:00:22 -05:00
Kconfig usb: Add support for STM32 family USB driver 2017-10-17 09:14:47 -04:00
usb_dc_dw.c usb: dc_dw: Improve TX perf and reliability 2017-11-09 09:15:55 -06:00
usb_dc_stm32.c usb: stm32: Fix null dereference in ep_write 2017-11-09 09:13:14 -05:00
usb_dw_registers.h usb_dc_dw: Correctly assign endpoint FIFOs 2017-10-28 14:38:19 -04:00