• Ivo van Doorn's avatar
    rt2x00: Queue handling overhaul · 181d6902
    Ivo van Doorn authored
    This introduces a big queue handling overhaul, this also
    renames "ring" to "queues".
    
    Move queue handling into rt2x00queue.c and the matching header,
    use Kerneldoc to improve rt2x00 library documentation.
    
    Access to the queues is now protected under a spinlock, this
    to prevent race conditions which could corrupt the indexing
    system of the queue.
    
    Each queue entry allocates x bytes for driver/device specific data,
    this cleans up the queue structure significantly and improves
    code readability.
    
    rt2500usb no longer needs 2 entries in the beacon queue to correctly
    send out the guardian byte. This is now handled in the entry specific
    structure.
    
    rt61 and rt73 now use the correct descriptor size for beacon frames,
    since this data is written into the registers not the entire TXD
    descriptor was used but instead of a subset of it named TXINFO.
    
    Finally this also fixes numerous other bugs related to incorrect
    beacon handling or beacon related code.
    Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    181d6902
rt73usb.c 65.4 KB