[PATCH 0/9] usb: dwc3: fix for Link Layer Compliance Suite TD7.06

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux