• Ben Hutchings's avatar
    3c59x: Specify window explicitly for access to windowed registers · a095cfc4
    Ben Hutchings authored
    Currently much of the code assumes that a specific window has been
    selected, while a few functions save and restore the window.  This
    makes it impossible to introduce fine-grained locking.
    
    Make those assumptions explicit by introducing wrapper functions
    to set the window and read/write a register.  Use these everywhere
    except vortex_interrupt(), vortex_start_xmit() and vortex_rx().
    These set the window just once, or not at all in the case of
    vortex_rx() as it should always be called from vortex_interrupt().
    
    Cache the current window in struct vortex_private to avoid
    unnecessary hardware writes.
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    Tested-by: Arne Nordmark <nordmark@mech.kth.se> [against 2.6.32]
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a095cfc4
3c59x.c 101 KB