On Thu, 1 Apr 2010, Alan Stern wrote: > > When I set SYNC_URBS to 3 and apply your ehci-sched fix, I get the > > following results: > > > > http://xes-inc.com/sources/debug/test-with-syncurbs-3.txt > > The resubmission should not have failed. Please repeat this test with > CONFIG_USB_DEBUG enabled in the kernel. Also, you can remove the stack > dump you added to ehci_irq(), and insert the following in > iso_stream_schedule(): > > /* Tried to schedule too far into the future? */ > if (unlikely(((start - now) & (mod - 1)) + span > >= mod - 2 * SCHEDULE_SLOP)) { > + ehci_info(ehci, "now %u next %u start %u span %u uframe %d\n", > + now, next, start, span, stream->next_uframe); > status = -EFBIG; > goto fail; > } On further thought, I see what the problem is. It should work okay with SYNC_URBS set to 2. With 3, let's say the first URB completes in frame N. The second URB is scheduled for frame N+64 and the third for frame N+128. When the first is resubmitted it will be scheduled for frame N+192, leaving the next available slot at N+256, which is too far in the future. Of course, all this is irrelevant to the matter of what messes up your EHCI controller, since the controller fails even when there are no sync URBs. 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