037b8a37607f39384e1561cf033d7dfcb55122fa
[openwrt-10.03/.git] / package / mac80211 / patches / 810-b43_no_pio.patch
1 --- a/drivers/net/wireless/b43/Makefile
2 +++ b/drivers/net/wireless/b43/Makefile
3 @@ -14,7 +14,7 @@ b43-y                         += xmit.o
4  b43-y                          += lo.o
5  b43-y                          += wa.o
6  b43-y                          += dma.o
7 -b43-y                          += pio.o
8 +b43-$(CONFIG_B43_PIO)          += pio.o
9  b43-y                          += rfkill.o
10  b43-$(CONFIG_B43_LEDS)         += leds.o
11  b43-$(CONFIG_B43_PCMCIA)       += pcmcia.o
12 --- a/drivers/net/wireless/b43/main.c
13 +++ b/drivers/net/wireless/b43/main.c
14 @@ -1812,9 +1812,11 @@ static void b43_do_interrupt_thread(stru
15                                dma_reason[4], dma_reason[5]);
16                         b43err(dev->wl, "This device does not support DMA "
17                                "on your system. It will now be switched to PIO.\n");
18 +#ifdef CONFIG_B43_PIO
19                         /* Fall back to PIO transfers if we get fatal DMA errors! */
20                         dev->use_pio = 1;
21                         b43_controller_restart(dev, "DMA error");
22 +#endif
23                         return;
24                 }
25                 if (merged_dma_reason & B43_DMAIRQ_NONFATALMASK) {
26 --- a/drivers/net/wireless/b43/pio.h
27 +++ b/drivers/net/wireless/b43/pio.h
28 @@ -150,7 +150,7 @@ static inline void b43_piorx_write32(str
29         b43_write32(q->dev, q->mmio_base + offset, value);
30  }
31  
32 -
33 +#ifdef CONFIG_B43_PIO
34  int b43_pio_init(struct b43_wldev *dev);
35  void b43_pio_free(struct b43_wldev *dev);
36  
37 @@ -161,5 +161,37 @@ void b43_pio_rx(struct b43_pio_rxqueue *
38  
39  void b43_pio_tx_suspend(struct b43_wldev *dev);
40  void b43_pio_tx_resume(struct b43_wldev *dev);
41 +#else
42 +static inline int b43_pio_init(struct b43_wldev *dev)
43 +{
44 +       return 0;
45 +}
46 +
47 +static inline void b43_pio_free(struct b43_wldev *dev)
48 +{
49 +}
50 +
51 +static inline int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb)
52 +{
53 +       return 0;
54 +}
55 +
56 +static inline void b43_pio_handle_txstatus(struct b43_wldev *dev,
57 +                                          const struct b43_txstatus *status)
58 +{
59 +}
60 +
61 +static inline void b43_pio_rx(struct b43_pio_rxqueue *q)
62 +{
63 +}
64 +
65 +static inline void b43_pio_tx_suspend(struct b43_wldev *dev)
66 +{
67 +}
68 +
69 +static inline void b43_pio_tx_resume(struct b43_wldev *dev)
70 +{
71 +}
72 +#endif /* CONFIG_B43_PIO */
73  
74  #endif /* B43_PIO_H_ */