On Tue, 19 May 2009, [koi8-r] ìÅÏÎÉÄ ìÉÓÏ×ÓËÉÊ wrote: > Hello all > > I discover that new TT scheduler don't allow transfers longer than 780 uS > (see > max_tt_usecs[] in ehci-sched.c) or approx. 1000 bytes as calculated in > iso_stream_init() for full speed isoc transfer. But, as I can understand > from usb 2.0 documentation, limit for full speed isoc transfer is 1023 > bytes as of table 5-4 sec 5.6.3. and it take approx. 806 uS That time includes bit-stuffing. Without bit-stuffing the value would be 692 us or so. > Also, sec 5.6.4 declares that: > > "The USB requires that no more than 90% of any frame be allocated for > periodic > (isochronous and interrupt) transfers for full-speed endpoints. High-speed > endpoints can allocate at most 80% of a microframe for periodic > transfers." > > Can somebody explain scheduler limitation of 780 uS? Is it 78% of 1000 uS > (8 microframes) or 89% of 875 uS (8 microframes minus SOF)? I'm not certain (since I didn't write the code), but I think 780 is a bad estimate of: 1000 us * 90% * (6/7). The (6/7) factor was put in to account for bit-stuffing, by mistake. If you do the calculation, the actual value would be 771, not 780, so maybe this guess is wrong. > Why old scheduler allow 1023 bytes full speed isoc transfer but new one > forbid this?? Because the new scheduler has bugs. You found one of them. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html