zephyr/drivers/usb
Tomasz Moń a26d3c2f2e drivers: udc_dwc2: Workaround endpoint disable race condition
Endpoint disable function is racing against bus traffic. If the bus
traffic leads to transfer completion immediately before the endpoint
disable is executed, then the transfer complete interrupt will remain
set when the endpoint is disabled. For OUT endpoints this leads to "No
buffer for ep" errors, while for IN endpoint this can lead to double
buffer pull which causes assertion failure.

The proper solution would be to change endpoint disable to not actually
wait for the individual events (and accept that the endpoint may not
need to be disabled because the transfer can just finish). For the time
being workaround the issue by clearing XferCompl bit on endpoint
disable.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-11-30 09:36:17 +01:00
..
bc12
common nrf_usbd_common: Do not trigger DMA in low power mode 2024-11-26 14:45:01 +00:00
device soc: raspberrypi: Drop PINCTRL from Kconfig.defconfig 2024-11-25 14:42:01 +01:00
udc drivers: udc_dwc2: Workaround endpoint disable race condition 2024-11-30 09:36:17 +01:00
uhc
uvb linker: drivers: Use Z_LINK_ITERABLE_SUBALIGN 2024-04-20 13:45:25 -04:00
CMakeLists.txt
Kconfig