Hi Dave,

I have a question on the ehci handling of tt's.  It looks like the driver 
currently schedules only a single split-transaction on any given tt (i.e. 
the tt_no_collision function).  However, don't tt's have buffers in them, 
so that multiple split transactions can be queued up on them?

The reason I ask is because without queueing split transactions on a tt,
the number of full-speed devices that can be used behind a high-speed hub
is pretty limited.  Assuming that, at best, a split-transaction will take
3 uframes (i.e. (1) submit, (2) s-split, (3) c-split), that's only 2
split-transactions per frame.  So if there are two devices each with 1ms
interval interrupt-in endpoints, that fills up the tt's scedule and no
more interrupt-in endpoints can be used.  I'm seeing the problem when I
connect only 3 devices to a high-speed hub, although the devices have
several interrupt-in endpoints each with less-than 1ms poll rates.

If I remove the tt_no_collision function, it seems like more code will be
needed to actually make sure the full/low speed bus scheduling is handled,
right (e.g. some of the c-splits should be delayed)?  Do you think any
special handling of sitd's is needed?

Thanks!

-- 
Dan Streetman
[EMAIL PROTECTED]
---------------------
186,272 miles per second:
It isn't just a good idea, it's the law!


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to