• Johannes Erdfelt's avatar
    [PATCH] 2.5 uhci control and interrupt queuing · 495efc14
    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
uhci-hcd.c 61.5 KB