On Sun, 8 Sep 2013, vichy wrote: > >> suppose start passed to itd_slot_ok is 537, period, usb->interval, is 8. > >> that mean we want to know whether bandwidth of microframe 537 is enough. > >> Not want to know whether 537%8 =1 > >> the bandwidth of microframe 1 is enough. > > > > In fact you need to know both. If an isochronous endpoint has interval > > 8 and it uses microframe 537, then it's also going to use microframes > > 545, 553, 561, ..., 8177, 8185, 1, 9, ..., 529. > So at first time stream is scheduled, we have to make sure all > possible microframe bandwidth is enough, right? That's right. > BTW, I have another question about iso_stream_schedule. > When if (likely (!list_empty (&stream->td_list))) happen, > why don't we just take last scheduled microframe, stream->next_uframe > as start point directly? We do exactly that if URB_ISO_ASAP isn't set. But first the routine has to check and see if the schedule is already full, and it prints a debugging message if all the assigned microframes have already expired. > appreciate your kind help, You're welcome. 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