mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	Based on patch by Bryan Forbes <bryan@reigndropsfall.net> Also update mt76 to update for API changes Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 44655
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- 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
 | |
| @@ -2008,10 +2008,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
 |