Hi, Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> writes: > Hi, > > Bin Liu <b-liu@xxxxxx> writes: >>> > >> > Does this mean the issue of isoc high bandwidth transfer was fixed by >>> > >> > this patchset per your test? >>> > >> >>> > >> No, I couldn't get g_webcam to work yet. >>> > > >>> > > In mainline, g_webcam is broken with DWC3. Also these two patches don't >>> > > fix the issue on v4.4.21. >>> > >>> > care to send tracepoint output? Best if you could cherry pick my latest >>> > tracepoint changes so we have the best output possible. >>> > >>> > I have also built a branch with v4.4.21 + all dwc3 patches (except for >>> > device properties and PCI stuff) which you could use for testing. If you >>> > run with that, then I can get proper trace output and I can try to >>> > figure out what's missing. >>> > >>> > Branch is here: >>> > >>> > git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git usb/v4.4.21+dwc3 >>> >>> This branch does not generate the isoch traffic (on ep2in). ftrace >>> attached (dwc3-g_webcam-v4.4.21+tp.ftrace). >>> >>> I also attached the ftrace log for v4.4.21 tag >>> (dwc3-g_webcam-v4.4.21.ftrace) for comparison, which has ep2in isoch >>> traffic, but only one transaction per SOF. >> >> Sorry, I didn't realize the ftrace file size is huge. Attached the >> tarball here. > > looking at webcam.c, it'll set wMaxPacket correctly (to 0x1400) if you > pass streaming_maxpacket=3072. So that's one thing. > > I'll look at this log with more detail tomorrow, though. here's a bug in composite.c because of a bug in usb_endpoint_maxp(). diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 32176f779861..f6a7583ab6d1 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -197,7 +197,7 @@ int config_ep_by_speed(struct usb_gadget *g, ep_found: /* commit results */ - _ep->maxpacket = usb_endpoint_maxp(chosen_desc); + _ep->maxpacket = usb_endpoint_maxp(chosen_desc) & 0x7ff; _ep->desc = chosen_desc; _ep->comp_desc = NULL; _ep->maxburst = 0; We have to fix it like this, at least for now, because changing usb_endpoint_maxp() involves doing a complete audit of all call sites of usb_endpoint_maxp(). I'll do that for v4.10 merge window. Can you check that if this helps in any way? -- balbi
Attachment:
signature.asc
Description: PGP signature