Felipe Balbi wrote:
Thinh Nguyen Thinh.Nguyen@synopsys.com writes:
Hi Felipe,
Thinh Nguyen wrote:
This series fixes a couple of driver issues handling ClearFeature(halt) request:
- A function driver often uses set_halt() to reject a class driver protocol
command. After set_halt(), the endpoint will be stalled. It can queue new requests while the endpoint is stalled. However, dwc3 currently drops those requests after CLEAR_STALL. The driver should only drop started requests. Keep the pending requests in the pending list to resume and process them after the host issues ClearFeature(Halt) to the endpoint.
- DWC3 should issue CLEAR_STALL command _after_ END_TRANSFER command completes.
Thinh Nguyen (3): usb: dwc3: gadget: Resume pending requests after CLEAR_STALL usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
Since you're picking the fix patches for RC cycle, can you pick up these 2 patches of this series also? We can leave the refactoring patch in this series for v5.10.
just to be sure: you did run these through usbcv and usb3 compliance suite, right? Which gadget drivers did you use?
Yes I did for chapter 9, MSC, and UASP CV. I missed this issue because "stall" was not enabled by default for mass_storage configfs. Without this fix, mass_storage function won't work with "stall" enabled.
(Note: for UASP CV, it requires many fixes/enhancements in f_tcm and the target subsystem to work properly.)
Thanks, Thinh