mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-01 19:46:51 +00:00
mac80211: b43: Expose PIO mode fallback
Allow reenabling the PIO mode fallback for b43. Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com> SVN-Revision: 26735
This commit is contained in:
parent
0429ec0c11
commit
becddc9ec7
@ -34,6 +34,7 @@ PKG_CONFIG_DEPENDS:= \
|
|||||||
CONFIG_PACKAGE_MAC80211_DEBUGFS \
|
CONFIG_PACKAGE_MAC80211_DEBUGFS \
|
||||||
CONFIG_PACKAGE_ATH_DEBUG \
|
CONFIG_PACKAGE_ATH_DEBUG \
|
||||||
CONFIG_PACKAGE_B43_DEBUG \
|
CONFIG_PACKAGE_B43_DEBUG \
|
||||||
|
CONFIG_PACKAGE_B43_PIO \
|
||||||
CONFIG_ATH_USER_REGD \
|
CONFIG_ATH_USER_REGD \
|
||||||
|
|
||||||
CARL9170_FW_VERSION:=1.9.2
|
CARL9170_FW_VERSION:=1.9.2
|
||||||
@ -1118,6 +1119,15 @@ define KernelPackage/b43/config
|
|||||||
|
|
||||||
If unsure, say N.
|
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
|
endmenu
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -1179,6 +1189,7 @@ BUILDFLAGS:= \
|
|||||||
-DCONFIG_MAC80211_RC_MINSTREL_HT \
|
-DCONFIG_MAC80211_RC_MINSTREL_HT \
|
||||||
$(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
|
$(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
|
||||||
$(if $(CONFIG_PACKAGE_B43_DEBUG),-DCONFIG_B43_DEBUG) \
|
$(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_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
|
||||||
$(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
|
$(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
|
||||||
$(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
|
$(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
|
||||||
@ -1211,6 +1222,7 @@ MAKE_OPTS:= \
|
|||||||
CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
|
CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
|
||||||
CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
|
CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
|
||||||
CONFIG_B43_DEBUG=$(if $(CONFIG_PACKAGE_B43_DEBUG),y) \
|
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_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
|
||||||
CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
|
CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
|
||||||
CONFIG_ATH5K_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
|
CONFIG_ATH5K_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
b43-y += wa.o
|
b43-y += wa.o
|
||||||
b43-y += dma.o
|
b43-y += dma.o
|
||||||
-b43-y += pio.o
|
-b43-y += pio.o
|
||||||
+# b43-y += pio.o
|
+b43-$(CONFIG_B43_PIO) += pio.o
|
||||||
b43-y += rfkill.o
|
b43-y += rfkill.o
|
||||||
b43-$(CONFIG_B43_LEDS) += leds.o
|
b43-$(CONFIG_B43_LEDS) += leds.o
|
||||||
b43-$(CONFIG_B43_PCMCIA) += pcmcia.o
|
b43-$(CONFIG_B43_PCMCIA) += pcmcia.o
|
||||||
@ -15,7 +15,7 @@
|
|||||||
dma_reason[4], dma_reason[5]);
|
dma_reason[4], dma_reason[5]);
|
||||||
b43err(dev->wl, "This device does not support DMA "
|
b43err(dev->wl, "This device does not support DMA "
|
||||||
"on your system. It will now be switched to PIO.\n");
|
"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! */
|
/* Fall back to PIO transfers if we get fatal DMA errors! */
|
||||||
dev->use_pio = 1;
|
dev->use_pio = 1;
|
||||||
b43_controller_restart(dev, "DMA error");
|
b43_controller_restart(dev, "DMA error");
|
||||||
@ -25,12 +25,20 @@
|
|||||||
if (merged_dma_reason & B43_DMAIRQ_NONFATALMASK) {
|
if (merged_dma_reason & B43_DMAIRQ_NONFATALMASK) {
|
||||||
--- a/drivers/net/wireless/b43/pio.h
|
--- a/drivers/net/wireless/b43/pio.h
|
||||||
+++ b/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);
|
@@ -161,5 +161,37 @@ void b43_pio_rx(struct b43_pio_rxqueue *
|
||||||
-void b43_pio_free(struct b43_wldev *dev);
|
|
||||||
|
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)
|
+static inline int b43_pio_init(struct b43_wldev *dev)
|
||||||
+{
|
+{
|
||||||
+ return 0;
|
+ return 0;
|
||||||
@ -44,11 +52,7 @@
|
|||||||
+{
|
+{
|
||||||
+ return 0;
|
+ 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,
|
+static inline void b43_pio_handle_txstatus(struct b43_wldev *dev,
|
||||||
+ const struct b43_txstatus *status)
|
+ const struct b43_txstatus *status)
|
||||||
+{
|
+{
|
||||||
@ -57,14 +61,14 @@
|
|||||||
+static inline void b43_pio_rx(struct b43_pio_rxqueue *q)
|
+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_suspend(struct b43_wldev *dev)
|
||||||
+{
|
+{
|
||||||
+}
|
+}
|
||||||
|
+
|
||||||
+static inline void b43_pio_tx_resume(struct b43_wldev *dev)
|
+static inline void b43_pio_tx_resume(struct b43_wldev *dev)
|
||||||
+{
|
+{
|
||||||
+}
|
+}
|
||||||
|
+#endif /* CONFIG_B43_PIO */
|
||||||
|
|
||||||
#endif /* B43_PIO_H_ */
|
#endif /* B43_PIO_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user