diff options
Diffstat (limited to 'drivers/net/wireless/b43')
| -rw-r--r-- | drivers/net/wireless/b43/dma.c | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/main.c | 14 | 
2 files changed, 17 insertions, 3 deletions
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c index f7c70b3a6ea9..c51d2dc489e4 100644 --- a/drivers/net/wireless/b43/dma.c +++ b/drivers/net/wireless/b43/dma.c @@ -431,9 +431,9 @@ static int alloc_ringmemory(struct b43_dmaring *ring)  	u16 ring_mem_size = (ring->type == B43_DMA_64BIT) ?  				B43_DMA64_RINGMEMSIZE : B43_DMA32_RINGMEMSIZE; -	ring->descbase = dma_alloc_coherent(ring->dev->dev->dma_dev, -					    ring_mem_size, &(ring->dmabase), -					    GFP_KERNEL | __GFP_ZERO); +	ring->descbase = dma_zalloc_coherent(ring->dev->dev->dma_dev, +					     ring_mem_size, &(ring->dmabase), +					     GFP_KERNEL);  	if (!ring->descbase)  		return -ENOMEM; diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index 0e933bb71543..ccd24f0acb8d 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c @@ -4645,6 +4645,19 @@ static void b43_wireless_core_exit(struct b43_wldev *dev)  	b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_PSM_RUN,  		      B43_MACCTL_PSM_JMP0); +	switch (dev->dev->bus_type) { +#ifdef CONFIG_B43_BCMA +	case B43_BUS_BCMA: +		bcma_core_pci_down(dev->dev->bdev->bus); +		break; +#endif +#ifdef CONFIG_B43_SSB +	case B43_BUS_SSB: +		/* TODO */ +		break; +#endif +	} +  	b43_dma_free(dev);  	b43_pio_free(dev);  	b43_chip_exit(dev); @@ -4684,6 +4697,7 @@ static int b43_wireless_core_init(struct b43_wldev *dev)  	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 CONFIG_B43_SSB  | 
