blob: e395d48202854966c62ca3dc0d40467a455f3d74 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001--- a/drivers/net/wireless/broadcom/b43/Makefile
2+++ b/drivers/net/wireless/broadcom/b43/Makefile
3@@ -18,7 +18,7 @@ b43-$(CPTCFG_B43_PHY_AC) += phy_ac.o
4 b43-y += sysfs.o
5 b43-y += xmit.o
6 b43-y += dma.o
7-b43-y += pio.o
8+b43-$(CPTCFG_B43_PIO) += pio.o
9 b43-y += rfkill.o
10 b43-y += ppr.o
11 b43-$(CPTCFG_B43_LEDS) += leds.o
12--- a/drivers/net/wireless/broadcom/b43/main.c
13+++ b/drivers/net/wireless/broadcom/b43/main.c
14@@ -2001,10 +2001,12 @@ static void b43_do_interrupt_thread(stru
15 dma_reason[0], dma_reason[1],
16 dma_reason[2], dma_reason[3],
17 dma_reason[4], dma_reason[5]);
18+#ifdef CPTCFG_B43_PIO
19 b43err(dev->wl, "This device does not support DMA "
20 "on your system. It will now be switched to PIO.\n");
21 /* Fall back to PIO transfers if we get fatal DMA errors! */
22 dev->use_pio = true;
23+#endif
24 b43_controller_restart(dev, "DMA error");
25 return;
26 }
27--- a/drivers/net/wireless/broadcom/b43/pio.h
28+++ b/drivers/net/wireless/broadcom/b43/pio.h
29@@ -151,7 +151,7 @@ static inline void b43_piorx_write32(str
30 b43_write32(q->dev, q->mmio_base + offset, value);
31 }
32
33-
34+#ifdef CPTCFG_B43_PIO
35 int b43_pio_init(struct b43_wldev *dev);
36 void b43_pio_free(struct b43_wldev *dev);
37
38@@ -162,5 +162,37 @@ void b43_pio_rx(struct b43_pio_rxqueue *
39
40 void b43_pio_tx_suspend(struct b43_wldev *dev);
41 void b43_pio_tx_resume(struct b43_wldev *dev);
42+#else
43+static inline int b43_pio_init(struct b43_wldev *dev)
44+{
45+ return 0;
46+}
47+
48+static inline void b43_pio_free(struct b43_wldev *dev)
49+{
50+}
51+
52+static inline int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb)
53+{
54+ return 0;
55+}
56+
57+static inline void b43_pio_handle_txstatus(struct b43_wldev *dev,
58+ const struct b43_txstatus *status)
59+{
60+}
61+
62+static inline void b43_pio_rx(struct b43_pio_rxqueue *q)
63+{
64+}
65+
66+static inline void b43_pio_tx_suspend(struct b43_wldev *dev)
67+{
68+}
69+
70+static inline void b43_pio_tx_resume(struct b43_wldev *dev)
71+{
72+}
73+#endif /* CPTCFG_B43_PIO */
74
75 #endif /* B43_PIO_H_ */
76--- a/drivers/net/wireless/broadcom/b43/Kconfig
77+++ b/drivers/net/wireless/broadcom/b43/Kconfig
78@@ -100,7 +100,7 @@ config B43_BCMA_PIO
79 default y
80
81 config B43_PIO
82- bool
83+ bool "Broadcom 43xx PIO support"
84 depends on B43 && B43_SSB
85 depends on SSB_BLOCKIO
86 default y