-
Johannes Erdfelt authored
This is 95% Dan's patch, but I made some small changes. The changes I've made relative to Dan's patch is: Drop concept of skeleton TD. After Dan's patch, this was reduced to one entry in the form of skel_term_td. That wasn't even a skeleton TD in the first place. This simplifies the code a little bit. Minor formatting tweaks. Pass on USB bandwidth changes for now. Pass on Interrupt auto-resubmit changes for now. Use complete_list_lock, not complete_list as the lock. Use frame_list_lock, not fame_list_lock. Reorganize skeleton QH's to match the order in the schedule. This cleaned up some debugging code and made the list more logical. Update some obsolete documentation. Pass on code to check for race conditions and fix up. It was racy as well. Dan, do you compile with SMP? Those two locking typos would have generated a warning and/or error. I've done some light testing and haven't found any problems yet. I haven't tested the control or interrupt queuing for lack of anything to test with yet. Anyway, please apply. Merge in Dan's patch to add interrupt and control queuing support. Summary of changes: Add queuing support for Interrupt and Control message in addition to Bulk. This resulted in some merging of code. Fix a queuing bug when moving a child into the parent position. Update documentation. Update debugging code.
495efc14