• Michael Buesch's avatar
    b43: Add PIO support for PCMCIA devices · 5100d5ac
    Michael Buesch authored
    This adds PIO support back (D'oh!) for PCMCIA devices.
    This is a complete rewrite of the old PIO code. It does actually work
    and we get reasonable performance out of it on a modern machine.
    On a PowerBook G4 I get a few MBit for TX and a few more for RX.
    So it doesn't work as well as DMA (of course), but it's a _lot_ faster
    than the old PIO code (only got a few kBit with that).
    
    The limiting factor is the host CPU speed. So it will generate 100%
    CPU usage when the network interface is heavily loaded. A voluntary preemption
    point in the RX path makes sure Desktop Latency isn't hurt.
    
    PIO is needed for 16bit PCMCIA devices, as we really don't want to poke with
    the braindead DMA mechanisms on PCMCIA sockets. Additionally, not all
    PCMCIA sockets do actually support DMA in 16bit mode (mine doesn't).
    Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    5100d5ac
dma.c 40.3 KB