Dave: In ehci-hcd's scan-periodic() routine, you loop through all the frames in the schedule since the last time the routine was called, processing all the isochronous TDs and interrupt QHs associated with each frame. That's fine for the isochronous transfers, but it seems wasteful (and possibly flat-out wrong in the presence of frame-list wraparound) for interrupt transfers. For example, if an interrupt endpoint has a period of 16 ms and there's no IRQ for 512 ms, you end up pointlessly calling qh_completions() 32 times for the same endpoint queue when the IRQ occurs. Wouldn't it make more sense to have scan_periodic() terminate its inner loop whenever it encounters a Q_TYPE_QH entry? And then do a separate pass over all the interrupt QHs, much like scan_async() does a pass over all the QHs in the async ring? 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