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
