mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05: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
 |