Hi guys, So, this is why I have been mostly silent during last week. We were debugging this failure with the TD7.06 of the Link Layer Compliance Suite - a mandatory test for USB3 certification - and it turned out to be a silicon issue. The workaround is somwhat simple - don't use on-demand transfers for data phase - but the outcome of that is a rather big rework of ep0 handling, because we now need to be careful about starting control_data transfers while still maintaining XferNotReady(DATA) handling for the error condition. It took a while to make sure everything was still as stable as before, but after these patches TI's OMAP5 is passing all USB3 Certification tests (that includes the entire USB2 test-suite which is mandatory for USB3 devices). Please give it a good round of test on your platforms, I will queue this for v3.7 merge window. Note that I reserve the benefit of still rebasing these patches until we get -rc1, but I might need to rebase dwc3 again after that in order to avoid conflicts with Greg's usb-next. This will happen only during this cycle because I want to make sure we don't get auto- merge mistakes and end up breaking ep0 handling. Now that we have a certifiable solution, we plan to mantain it that way, so before sending any patches for drivers/usb/dwc3, or drivers/usb/gadget/composite.c or drivers/usb/gadget/udc-core.c, make sure to run at leat USB30CV and USB20CV on your platform. Ideally, you should also pass all Lecroy's test-suite, including the extra assertions provided by Lecroy itself as they provide good confidence that your patch works properly. Felipe Balbi (9): usb: dwc3: gadget: set Ignore Sequence Number bit from ConnectDone Event usb: dwc3: ep0: drop unnecessary variable usb: dwc3: ep0: split the special cases on ep0_queue usb: dwc3: ep0: drop dead code usb: dwc3: ep0: ignore XferNotReady(STATUS) when we're not expecting it usb: dwc3: ep0: move DATA phase away from on-demand usb: dwc3: ep0: drop XferNotReady(DATA) support usb: dwc3: ep0: fix status phase delayed status direction usb: dwc3: ep0: make sure to reinitilize ep1 on STALL drivers/usb/dwc3/core.h | 2 - drivers/usb/dwc3/ep0.c | 217 ++++++++++++++++++++++++---------------------- drivers/usb/dwc3/gadget.c | 21 +++-- 3 files changed, 127 insertions(+), 113 deletions(-) -- 1.7.11 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html