Greg: The following patch series is the first step in a thorough redesign of the periodic scheduler in ehci-hcd. The first six patches are all quite small; they include several minor fixes and improvements in areas that the later patches will use. None of the fixes are important enough to be worth including in a -stable release. The remaining five patches contain a major overhaul of part of the scheduler. Currently, ehci-hcd does not explicitly keep track of how much bandwidth has been allocated to each frame or microframe. Whenever it needs to know, it calculates a value on-the-fly by iterating through the schedule and adding up the bandwidth requirements for all the entries. Not only is this time-consuming and awkward, it also prevents an inactive endpoint from retaining its bandwidth allocation. The new approach uses a table to keep track of the high-speed bandwidth information. It also dynamically creates similar tables to track the low/full-speed bandwidth usage below each Transaction Translator. The advantages are clear. Another change made in these patches is to unify the scheduling information for different types of periodic endpoints. This makes it possible to keep both interrupt and isochronous data on a single list and treat them uniformly. For the moment this capability is used only for populating a new debugfs file; it will become much more important later on when the code for scheduling split transactions is fixed up. There's still a lot more work to do. I estimate that these patches accomplish only about 25% of what we need for really solid periodic scheduling. 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