9d4145efe5
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
|