mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	The BCM4331 supports a PCIe max request size of 512 bytes and uses that, but the PCIe controller in the BCM4706 just supports 128 Bytes and that causes a DMA error for packages bigger than 126 bytes. This fixes the problem by setting the BCM4331 also to 128 Bytes. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 37709
		
			
				
	
	
		
			37 lines
		
	
	
		
			917 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			917 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| b43: call PCIe up and down functions
 | |
| 
 | |
| Tell the PCIe host core when the wifi is activated.
 | |
| 
 | |
| Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | |
| 
 | |
| --- a/drivers/net/wireless/b43/main.c
 | |
| +++ b/drivers/net/wireless/b43/main.c
 | |
| @@ -4670,6 +4670,19 @@ static void b43_wireless_core_exit(struc
 | |
|  	b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_PSM_RUN,
 | |
|  		      B43_MACCTL_PSM_JMP0);
 | |
|  
 | |
| +	switch (dev->dev->bus_type) {
 | |
| +#ifdef CPTCFG_B43_BCMA
 | |
| +	case B43_BUS_BCMA:
 | |
| +		bcma_core_pci_down(dev->dev->bdev->bus);
 | |
| +		break;
 | |
| +#endif
 | |
| +#ifdef CPTCFG_B43_SSB
 | |
| +	case B43_BUS_SSB:
 | |
| +		/* TODO */
 | |
| +		break;
 | |
| +#endif
 | |
| +	}
 | |
| +
 | |
|  	b43_dma_free(dev);
 | |
|  	b43_pio_free(dev);
 | |
|  	b43_chip_exit(dev);
 | |
| @@ -4709,6 +4722,7 @@ static int b43_wireless_core_init(struct
 | |
|  	case B43_BUS_BCMA:
 | |
|  		bcma_core_pci_irq_ctl(&dev->dev->bdev->bus->drv_pci[0],
 | |
|  				      dev->dev->bdev, true);
 | |
| +		bcma_core_pci_up(dev->dev->bdev->bus);
 | |
|  		break;
 | |
|  #endif
 | |
|  #ifdef CPTCFG_B43_SSB
 |