diff options
author | Michael Buesch <mb@bu3sch.de> | 2008-03-29 16:01:16 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-04-08 15:05:56 -0400 |
commit | 5100d5ac81b9330dc57e35adbe50923ba6107b8f (patch) | |
tree | 48224236b50703606c97c05ec077fde4880fc3b9 /drivers/net/wireless/b43/Kconfig | |
parent | 3109ece1114293b8201d9c140d02d7ce9a9fa387 (diff) |
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>
Diffstat (limited to 'drivers/net/wireless/b43/Kconfig')
-rw-r--r-- | drivers/net/wireless/b43/Kconfig | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig index 8bc4bc4c330e..94f04559028b 100644 --- a/drivers/net/wireless/b43/Kconfig +++ b/drivers/net/wireless/b43/Kconfig | |||
@@ -62,6 +62,13 @@ config B43_PCMCIA | |||
62 | 62 | ||
63 | If unsure, say N. | 63 | If unsure, say N. |
64 | 64 | ||
65 | # Data transfers to the device via PIO | ||
66 | # This is only needed on PCMCIA devices. All others can do DMA properly. | ||
67 | config B43_PIO | ||
68 | bool | ||
69 | depends on B43 && (B43_PCMCIA || B43_FORCE_PIO) | ||
70 | default y | ||
71 | |||
65 | config B43_NPHY | 72 | config B43_NPHY |
66 | bool "Pre IEEE 802.11n support (BROKEN)" | 73 | bool "Pre IEEE 802.11n support (BROKEN)" |
67 | depends on B43 && EXPERIMENTAL && BROKEN | 74 | depends on B43 && EXPERIMENTAL && BROKEN |
@@ -94,3 +101,13 @@ config B43_DEBUG | |||
94 | 101 | ||
95 | Say Y, if you want to find out why the driver does not | 102 | Say Y, if you want to find out why the driver does not |
96 | work for you. | 103 | work for you. |
104 | |||
105 | config B43_FORCE_PIO | ||
106 | bool "Force usage of PIO instead of DMA" | ||
107 | depends on B43 && B43_DEBUG | ||
108 | ---help--- | ||
109 | This will disable DMA and always enable PIO instead. | ||
110 | |||
111 | Say N! | ||
112 | This is only for debugging the PIO engine code. You do | ||
113 | _NOT_ want to enable this. | ||