diff options
Diffstat (limited to 'drivers/net/wireless/b43/dma.c')
-rw-r--r-- | drivers/net/wireless/b43/dma.c | 19 |
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 | ||
916 | void b43_dma_free(struct b43_wldev *dev) | 916 | void 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; |