hi Alan:
> > 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.
Does below source show us what you mean?
if (unlikely(start < period)) {
ehci_dbg(ehci, "iso sched full %p (%u-%u < %u mod %u)\n",
urb, stream->next_uframe, base,
period, mod);
status = -ENOSPC;
goto fail;
}
if so, I have one question, why we use ( (last scan frame and last
schedule frame) < end point interval) to determine schedule is full?
Below is where we handle URB_ISO_ASAP,
if (urb->transfer_flags & URB_ISO_ASAP)
start += (next - start + period - 1) & -period;
Why don't we just use start as next?
Appreciate your kind help,
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html