b43legacy: simplify engine type / DMA mask selection
authorChristoph Hellwig <hch@lst.de>
Tue, 25 Jun 2019 10:29:30 +0000 (12:29 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 27 Jun 2019 11:37:29 +0000 (14:37 +0300)
Return the engine type from the function looking at the registers, and
just derive the DMA mask from that in the one place we care.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/b43legacy/dma.c

index dcbc4aa..f7594e2 100644 (file)
@@ -603,7 +603,7 @@ static void free_all_descbuffers(struct b43legacy_dmaring *ring)
        }
 }
 
-static u64 supported_dma_mask(struct b43legacy_wldev *dev)
+static enum b43legacy_dmatype b43legacy_engine_type(struct b43legacy_wldev *dev)
 {
        u32 tmp;
        u16 mmio_base;
@@ -615,18 +615,7 @@ static u64 supported_dma_mask(struct b43legacy_wldev *dev)
        tmp = b43legacy_read32(dev, mmio_base +
                               B43legacy_DMA32_TXCTL);
        if (tmp & B43legacy_DMA32_TXADDREXT_MASK)
-               return DMA_BIT_MASK(32);
-
-       return DMA_BIT_MASK(30);
-}
-
-static enum b43legacy_dmatype dma_mask_to_engine_type(u64 dmamask)
-{
-       if (dmamask == DMA_BIT_MASK(30))
-               return B43legacy_DMA_30BIT;
-       if (dmamask == DMA_BIT_MASK(32))
                return B43legacy_DMA_32BIT;
-       B43legacy_WARN_ON(1);
        return B43legacy_DMA_30BIT;
 }
 
@@ -788,13 +777,10 @@ int b43legacy_dma_init(struct b43legacy_wldev *dev)
 {
        struct b43legacy_dma *dma = &dev->dma;
        struct b43legacy_dmaring *ring;
+       enum b43legacy_dmatype type = b43legacy_engine_type(dev);
        int err;
-       u64 dmamask;
-       enum b43legacy_dmatype type;
 
-       dmamask = supported_dma_mask(dev);
-       type = dma_mask_to_engine_type(dmamask);
-       err = dma_set_mask_and_coherent(dev->dev->dma_dev, dmamask);
+       err = dma_set_mask_and_coherent(dev->dev->dma_dev, DMA_BIT_MASK(type));
        if (err) {
 #ifdef CONFIG_B43LEGACY_PIO
                b43legacywarn(dev->wl, "DMA for this device not supported. "