Hi, Bin Liu <b-liu@xxxxxx> writes: > Hi, > > I am trying to check Isoch high bandwidth transfer with g_webcam.ko in > high-speed connection. > > First I hacked webcam.c as follows to enable 640x480@30fps mode. > > diff --git a/drivers/usb/gadget/legacy/webcam.c b/drivers/usb/gadget/legacy/webcam.c > index 72c976b..9eb315f 100644 > --- a/drivers/usb/gadget/legacy/webcam.c > +++ b/drivers/usb/gadget/legacy/webcam.c > @@ -191,15 +191,15 @@ static const struct UVC_FRAME_UNCOMPRESSED(3) uvc_frame_yuv_360p = { > .bFrameIndex = 1, > .bmCapabilities = 0, > .wWidth = cpu_to_le16(640), > - .wHeight = cpu_to_le16(360), > + .wHeight = cpu_to_le16(480), > .dwMinBitRate = cpu_to_le32(18432000), > .dwMaxBitRate = cpu_to_le32(55296000), > - .dwMaxVideoFrameBufferSize = cpu_to_le32(460800), > - .dwDefaultFrameInterval = cpu_to_le32(666666), > + .dwMaxVideoFrameBufferSize = cpu_to_le32(614400), > + .dwDefaultFrameInterval = cpu_to_le32(333333), > .bFrameIntervalType = 3, > - .dwFrameInterval[0] = cpu_to_le32(666666), > - .dwFrameInterval[1] = cpu_to_le32(1000000), > - .dwFrameInterval[2] = cpu_to_le32(5000000), > + .dwFrameInterval[0] = cpu_to_le32(333333), > + .dwFrameInterval[1] = cpu_to_le32(666666), > + .dwFrameInterval[2] = cpu_to_le32(1000000), > }; > > then loaded g_webcam.ko as > > # modprobe g_webcam streaming_maxpacket=3072 > > The endpoint descriptor showing on the host is > > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x8d EP 13 IN > bmAttributes 5 > Transfer Type Isochronous > Synch Type Asynchronous > Usage Type Data > wMaxPacketSize 0x1400 3x 1024 bytes > bInterval 1 > > However the usb bus trace shows only one transaction with 1024-bytes packet in > every SOF. The host only sends one IN packet in every SOF, I am expecting 2~3 > 1024-bytes transactions, since this would be required to transfer 640x480@30fps > YUV frames in high-speed. > > DId I miss anything in the setup? MUSB or DWC3? This looks like a UDC bug to me. Can you show a screenshot of your bus analyzer? When host sends IN token, are you replying with DATA0, DATA1 or DATA2? -- balbi
Attachment:
signature.asc
Description: PGP signature