]> git.baikalelectronics.ru Git - kernel.git/commit
b43: Add PIO support for PCMCIA devices
authorMichael Buesch <mb@bu3sch.de>
Sat, 29 Mar 2008 20:01:16 +0000 (21:01 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 8 Apr 2008 19:05:56 +0000 (15:05 -0400)
commit0353762eaf709f6d9e2a6d0233d9f95e5c0e656e
tree48224236b50703606c97c05ec077fde4880fc3b9
parentc05063fb86af71fe4acbca1665e06ca8f420ea57
b43: Add PIO support for PCMCIA devices

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: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/Kconfig
drivers/net/wireless/b43/Makefile
drivers/net/wireless/b43/b43.h
drivers/net/wireless/b43/dma.c
drivers/net/wireless/b43/dma.h
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/pio.c [new file with mode: 0644]
drivers/net/wireless/b43/pio.h [new file with mode: 0644]
drivers/net/wireless/b43/xmit.c
drivers/net/wireless/b43/xmit.h