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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html