diff options
author | hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-04-19 21:43:19 +0000 |
---|---|---|
committer | hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-04-19 21:43:19 +0000 |
commit | 525ee451c1d80d4cb5c99e5f4a901ddb21830d50 (patch) | |
tree | bfe2d6cbe84b23be26501c9abd74d79f6a526a2b | |
parent | 3c0289d1160628407d5a9da09682b4ce8f7f6622 (diff) |
mac80211: b43: Expose PIO mode fallback
Allow reenabling the PIO mode fallback for b43.
Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26735 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | package/mac80211/Makefile | 12 | ||||
-rw-r--r-- | package/mac80211/patches/810-b43_no_pio.patch | 30 |
2 files changed, 29 insertions, 13 deletions
diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile index 330876f13..1201b7f6a 100644 --- a/package/mac80211/Makefile +++ b/package/mac80211/Makefile @@ -34,6 +34,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_MAC80211_DEBUGFS \ CONFIG_PACKAGE_ATH_DEBUG \ CONFIG_PACKAGE_B43_DEBUG \ + CONFIG_PACKAGE_B43_PIO \ CONFIG_ATH_USER_REGD \ CARL9170_FW_VERSION:=1.9.2 @@ -1118,6 +1119,15 @@ define KernelPackage/b43/config If unsure, say N. + config PACKAGE_B43_PIO + bool "Enable support for PIO transfer mode" + default n + help + Enable support for using PIO instead of DMA. Unless you have DMA + transfer problems you don't need this. + + If unsure, say N. + endmenu endef @@ -1179,6 +1189,7 @@ BUILDFLAGS:= \ -DCONFIG_MAC80211_RC_MINSTREL_HT \ $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \ $(if $(CONFIG_PACKAGE_B43_DEBUG),-DCONFIG_B43_DEBUG) \ + $(if $(CONFIG_PACKAGE_B43_PIO),-DCONFIG_B43_PIO) \ $(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \ $(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \ $(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \ @@ -1211,6 +1222,7 @@ MAKE_OPTS:= \ CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \ CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \ CONFIG_B43_DEBUG=$(if $(CONFIG_PACKAGE_B43_DEBUG),y) \ + CONFIG_B43_PIO=$(if $(CONFIG_PACKAGE_B43_PIO),y) \ CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \ CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \ CONFIG_ATH5K_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \ diff --git a/package/mac80211/patches/810-b43_no_pio.patch b/package/mac80211/patches/810-b43_no_pio.patch index b30b417d8..037b8a376 100644 --- a/package/mac80211/patches/810-b43_no_pio.patch +++ b/package/mac80211/patches/810-b43_no_pio.patch @@ -5,7 +5,7 @@ b43-y += wa.o b43-y += dma.o -b43-y += pio.o -+# b43-y += pio.o ++b43-$(CONFIG_B43_PIO) += pio.o b43-y += rfkill.o b43-$(CONFIG_B43_LEDS) += leds.o b43-$(CONFIG_B43_PCMCIA) += pcmcia.o @@ -15,7 +15,7 @@ dma_reason[4], dma_reason[5]); b43err(dev->wl, "This device does not support DMA " "on your system. It will now be switched to PIO.\n"); -+#if 0 ++#ifdef CONFIG_B43_PIO /* Fall back to PIO transfers if we get fatal DMA errors! */ dev->use_pio = 1; b43_controller_restart(dev, "DMA error"); @@ -25,12 +25,20 @@ if (merged_dma_reason & B43_DMAIRQ_NONFATALMASK) { --- a/drivers/net/wireless/b43/pio.h +++ b/drivers/net/wireless/b43/pio.h -@@ -151,15 +151,34 @@ static inline void b43_piorx_write32(str +@@ -150,7 +150,7 @@ static inline void b43_piorx_write32(str + b43_write32(q->dev, q->mmio_base + offset, value); } +- ++#ifdef CONFIG_B43_PIO + int b43_pio_init(struct b43_wldev *dev); + void b43_pio_free(struct b43_wldev *dev); --int b43_pio_init(struct b43_wldev *dev); --void b43_pio_free(struct b43_wldev *dev); +@@ -161,5 +161,37 @@ void b43_pio_rx(struct b43_pio_rxqueue * + + void b43_pio_tx_suspend(struct b43_wldev *dev); + void b43_pio_tx_resume(struct b43_wldev *dev); ++#else +static inline int b43_pio_init(struct b43_wldev *dev) +{ + return 0; @@ -44,11 +52,7 @@ +{ + return 0; +} - --int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb); --void b43_pio_handle_txstatus(struct b43_wldev *dev, -- const struct b43_txstatus *status); --void b43_pio_rx(struct b43_pio_rxqueue *q); ++ +static inline void b43_pio_handle_txstatus(struct b43_wldev *dev, + const struct b43_txstatus *status) +{ @@ -57,14 +61,14 @@ +static inline void b43_pio_rx(struct b43_pio_rxqueue *q) +{ +} - --void b43_pio_tx_suspend(struct b43_wldev *dev); --void b43_pio_tx_resume(struct b43_wldev *dev); ++ +static inline void b43_pio_tx_suspend(struct b43_wldev *dev) +{ +} ++ +static inline void b43_pio_tx_resume(struct b43_wldev *dev) +{ +} ++#endif /* CONFIG_B43_PIO */ #endif /* B43_PIO_H_ */ |