Re: some questions about ehci period scheduling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux