hi alan: 2014-02-14 23:36 GMT+08:00 Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>: > On Fri, 14 Feb 2014, vichy wrote: > >> hi Alan: >> >> > I don't understand your question. >> > >> > At full speed (12 Mb/s), the time required to transfer 188 bytes is >> > >> > (188 bytes) * (8 bits/byte) / (12 b/us) = 125.33 us, >> > >> > which is greater than 125 us. >> >> @@ -1412,7 +1412,7 @@ sitd_slot_ok ( >> */ >> uf = uframe & 7; >> if (!tt_available(ehci, period_uframes >> 3, >> - stream->udev, frame, uf, stream->tt_usecs)) >> + stream->udev, frame, uf, stream->usecs)) >> >> if so, shall we modify code like above? >> Use transfer time instead of bus budget to calculate tt_avaiable? > > No. stream->usecs is the time required on the high-speed bus, and > stream->tt_usecs is the time required on the full/low-speed bus. > > tt_available makes its decisions based on whether there is enough > available time on the full/low-speed bus. Therefore it needs to use > stream->tt_usecs. it makes me a little confused. if we try to send 108 bytes to FS iso ep over HS hub. shouldn't we use below formula to calculate what bus time need for? NS_TO_US (think_time + usb_calc_bus_time ( dev->speed, is_input, 1, 108)); it seems no matter we transfer 108, 118, 140, even 188 bytes to FS iso ep over HS hub. The full/low bus time are all the same. appreciate your help -- 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