2015-12-04 22:39:37 +00:00
|
|
|
--- a/drivers/net/wireless/broadcom/b43/Makefile
|
|
|
|
+++ b/drivers/net/wireless/broadcom/b43/Makefile
|
2015-03-11 15:02:47 +00:00
|
|
|
@@ -17,7 +17,7 @@ b43-$(CPTCFG_B43_PHY_AC) += phy_ac.o
|
2014-07-12 15:37:34 +00:00
|
|
|
b43-y += sysfs.o
|
|
|
|
b43-y += xmit.o
|
2010-09-14 22:53:54 +00:00
|
|
|
b43-y += dma.o
|
|
|
|
-b43-y += pio.o
|
2013-10-13 20:25:12 +00:00
|
|
|
+b43-$(CPTCFG_B43_PIO) += pio.o
|
2010-09-14 22:53:54 +00:00
|
|
|
b43-y += rfkill.o
|
2014-09-27 20:51:43 +00:00
|
|
|
b43-y += ppr.o
|
2013-06-15 20:14:06 +00:00
|
|
|
b43-$(CPTCFG_B43_LEDS) += leds.o
|
2015-12-04 22:39:37 +00:00
|
|
|
--- a/drivers/net/wireless/broadcom/b43/main.c
|
|
|
|
+++ b/drivers/net/wireless/broadcom/b43/main.c
|
2015-11-16 06:55:38 +00:00
|
|
|
@@ -2008,10 +2008,12 @@ static void b43_do_interrupt_thread(stru
|
2013-06-15 20:14:06 +00:00
|
|
|
dma_reason[0], dma_reason[1],
|
|
|
|
dma_reason[2], dma_reason[3],
|
|
|
|
dma_reason[4], dma_reason[5]);
|
2013-10-13 20:25:12 +00:00
|
|
|
+#ifdef CPTCFG_B43_PIO
|
2013-06-15 20:14:06 +00:00
|
|
|
b43err(dev->wl, "This device does not support DMA "
|
2010-09-14 22:53:54 +00:00
|
|
|
"on your system. It will now be switched to PIO.\n");
|
2013-06-15 20:14:06 +00:00
|
|
|
/* Fall back to PIO transfers if we get fatal DMA errors! */
|
|
|
|
dev->use_pio = true;
|
2010-09-14 22:53:54 +00:00
|
|
|
+#endif
|
2013-06-15 20:14:06 +00:00
|
|
|
b43_controller_restart(dev, "DMA error");
|
|
|
|
return;
|
|
|
|
}
|
2015-12-04 22:39:37 +00:00
|
|
|
--- a/drivers/net/wireless/broadcom/b43/pio.h
|
|
|
|
+++ b/drivers/net/wireless/broadcom/b43/pio.h
|
2011-04-19 21:43:19 +00:00
|
|
|
@@ -150,7 +150,7 @@ static inline void b43_piorx_write32(str
|
|
|
|
b43_write32(q->dev, q->mmio_base + offset, value);
|
2010-09-14 22:53:54 +00:00
|
|
|
}
|
|
|
|
|
2011-04-19 21:43:19 +00:00
|
|
|
-
|
2013-10-13 20:25:12 +00:00
|
|
|
+#ifdef CPTCFG_B43_PIO
|
2011-04-19 21:43:19 +00:00
|
|
|
int b43_pio_init(struct b43_wldev *dev);
|
|
|
|
void b43_pio_free(struct b43_wldev *dev);
|
2010-09-14 22:53:54 +00:00
|
|
|
|
2011-04-19 21:43:19 +00:00
|
|
|
@@ -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
|
2010-09-14 22:53:54 +00:00
|
|
|
+static inline int b43_pio_init(struct b43_wldev *dev)
|
|
|
|
+{
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static inline void b43_pio_free(struct b43_wldev *dev)
|
|
|
|
+{
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static inline int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb)
|
|
|
|
+{
|
|
|
|
+ return 0;
|
|
|
|
+}
|
2011-04-19 21:43:19 +00:00
|
|
|
+
|
2010-09-14 22:53:54 +00:00
|
|
|
+static inline void b43_pio_handle_txstatus(struct b43_wldev *dev,
|
|
|
|
+ const struct b43_txstatus *status)
|
|
|
|
+{
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static inline void b43_pio_rx(struct b43_pio_rxqueue *q)
|
|
|
|
+{
|
|
|
|
+}
|
2011-04-19 21:43:19 +00:00
|
|
|
+
|
2010-09-14 22:53:54 +00:00
|
|
|
+static inline void b43_pio_tx_suspend(struct b43_wldev *dev)
|
|
|
|
+{
|
|
|
|
+}
|
2011-04-19 21:43:19 +00:00
|
|
|
+
|
2010-09-14 22:53:54 +00:00
|
|
|
+static inline void b43_pio_tx_resume(struct b43_wldev *dev)
|
|
|
|
+{
|
|
|
|
+}
|
2013-10-13 20:25:12 +00:00
|
|
|
+#endif /* CPTCFG_B43_PIO */
|
2010-09-14 22:53:54 +00:00
|
|
|
|
|
|
|
#endif /* B43_PIO_H_ */
|
2015-12-04 22:39:37 +00:00
|
|
|
--- a/drivers/net/wireless/broadcom/b43/Kconfig
|
|
|
|
+++ b/drivers/net/wireless/broadcom/b43/Kconfig
|
2015-11-16 06:55:38 +00:00
|
|
|
@@ -98,7 +98,7 @@ config B43_BCMA_PIO
|
2013-06-15 20:14:06 +00:00
|
|
|
default y
|
|
|
|
|
|
|
|
config B43_PIO
|
|
|
|
- bool
|
|
|
|
+ bool "Broadcom 43xx PIO support"
|
2014-05-20 09:35:17 +00:00
|
|
|
depends on B43 && B43_SSB
|
2013-06-15 20:14:06 +00:00
|
|
|
select SSB_BLOCKIO
|
|
|
|
default y
|