aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43/dma.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/b43/dma.c')
-rw-r--r--drivers/net/wireless/b43/dma.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c
index f3552acffdf7..63217b1e312d 100644
--- a/drivers/net/wireless/b43/dma.c
+++ b/drivers/net/wireless/b43/dma.c
@@ -915,11 +915,7 @@ static void b43_destroy_dmaring(struct b43_dmaring *ring)
915 915
916void b43_dma_free(struct b43_wldev *dev) 916void b43_dma_free(struct b43_wldev *dev)
917{ 917{
918 struct b43_dma *dma; 918 struct b43_dma *dma = &dev->dma;
919
920 if (b43_using_pio(dev))
921 return;
922 dma = &dev->dma;
923 919
924 b43_destroy_dmaring(dma->rx_ring3); 920 b43_destroy_dmaring(dma->rx_ring3);
925 dma->rx_ring3 = NULL; 921 dma->rx_ring3 = NULL;
@@ -954,16 +950,11 @@ int b43_dma_init(struct b43_wldev *dev)
954 950
955 err = ssb_dma_set_mask(dev->dev, dmamask); 951 err = ssb_dma_set_mask(dev->dev, dmamask);
956 if (err) { 952 if (err) {
957#ifdef B43_PIO 953 b43err(dev->wl, "The machine/kernel does not support "
958 b43warn(dev->wl, "DMA for this device not supported. " 954 "the required DMA mask (0x%08X%08X)\n",
959 "Falling back to PIO\n"); 955 (unsigned int)((dmamask & 0xFFFFFFFF00000000ULL) >> 32),
960 dev->__using_pio = 1; 956 (unsigned int)(dmamask & 0x00000000FFFFFFFFULL));
961 return -EAGAIN;
962#else
963 b43err(dev->wl, "DMA for this device not supported and "
964 "no PIO support compiled in\n");
965 return -EOPNOTSUPP; 957 return -EOPNOTSUPP;
966#endif
967 } 958 }
968 959
969 err = -ENOMEM; 960 err = -ENOMEM;