--- a/drivers/net/wireless/b43/Makefile +++ b/drivers/net/wireless/b43/Makefile @@ -17,7 +17,7 @@ b43-$(CPTCFG_B43_PHY_AC) += phy_ac.o b43-y += sysfs.o b43-y += xmit.o b43-y += dma.o -b43-y += pio.o +b43-$(CPTCFG_B43_PIO) += pio.o b43-y += rfkill.o b43-y += ppr.o b43-$(CPTCFG_B43_LEDS) += leds.o --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c @@ -2009,10 +2009,12 @@ static void b43_do_interrupt_thread(stru dma_reason[0], dma_reason[1], dma_reason[2], dma_reason[3], dma_reason[4], dma_reason[5]); +#ifdef CPTCFG_B43_PIO b43err(dev->wl, "This device does not support DMA " "on your system. It will now be switched to PIO.\n"); /* Fall back to PIO transfers if we get fatal DMA errors! */ dev->use_pio = true; +#endif b43_controller_restart(dev, "DMA error"); return; } --- a/drivers/net/wireless/b43/pio.h +++ b/drivers/net/wireless/b43/pio.h @@ -150,7 +150,7 @@ static inline void b43_piorx_write32(str b43_write32(q->dev, q->mmio_base + offset, value); } - +#ifdef CPTCFG_B43_PIO 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; +} + +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; +} + +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) +{ +} + +static inline void b43_pio_tx_suspend(struct b43_wldev *dev) +{ +} + +static inline void b43_pio_tx_resume(struct b43_wldev *dev) +{ +} +#endif /* CPTCFG_B43_PIO */ #endif /* B43_PIO_H_ */ --- a/drivers/net/wireless/b43/Kconfig +++ b/drivers/net/wireless/b43/Kconfig @@ -118,7 +118,7 @@ config B43_BCMA_PIO default y config B43_PIO - bool + bool "Broadcom 43xx PIO support" depends on B43 && B43_SSB select SSB_BLOCKIO default y