> Problem-
> The framerate appears to be stuck at 1ms between frames. 

That's part of the USB spec ... I think you mean "between requests".
One URB per request.

If your driver doesn't use URB queueing, the host controllers are only
going to get (at best) one request per frame, since host controllers
won't usually interrupt except at frame boundaries.  So the goal is
to make each request transfer lots of data.


> Case 1- One URB queued at a time
> Frames are 1ms apart, traffic looks like-
> [data]1ms[control]1ms[data]1ms[control] ...
>
> Case 2- Two URBs queued up at a time-
> [data]1ms[data]1ms[control]1ms[data]1ms[data]1ms[control] ...
> 
> Each [data] means 1 64byte bulk transfer.  I am assuming that 
> [control] is a control packet, it's a *very* tiny blip on the scope 
> compared to the [data] packets.

Perhaps SOF is more like it ... if you didn't explicitly put
control requests into your protocol, you shouldn't see any
of them going on, and a Star Of Frame is expected every
millisecond (for full or low speed).

Are you only submitting URBs with 64 byte packets?  If
so, that's likely your problem.  Bigger buffers work better
for bulk, when you want througput.  Try 2KB, for example.
That'll max out one frame (19 packets) and most of the
next (13 packets), with space for other USB transfers.

- Dave



_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to