staging: brcm80211: Remove abstraction of pci_(alloc/free)_consistent
authorBrett Rudley <brudley@broadcom.com>
Fri, 25 Feb 2011 15:39:10 +0000 (16:39 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 1 Mar 2011 02:15:03 +0000 (18:15 -0800)
The abstraction for allocating and freeing dma descriptor memory
has been removed and replaced by usage of pci_alloc_consistent and
pci_free_consistent.

Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/brcm80211/include/osl.h
drivers/staging/brcm80211/util/hnddma.c
drivers/staging/brcm80211/util/linux_osl.c

index 49015bdc6536e34904a63f4872267b659b86e1ab..c3800d01c484530963b43f13953cb816a0bf5980 100644 (file)
@@ -50,22 +50,6 @@ extern uint osl_pci_slot(struct osl_info *osh);
 
 #define BUS_SWAP32(v)          (v)
 
-extern void *osl_dma_alloc_consistent(struct osl_info *osh, uint size,
-                                     u16 align, uint *tot, unsigned long *pap);
-
-#ifdef BRCM_FULLMAC
-#define        DMA_ALLOC_CONSISTENT(osh, size, pap, dmah, alignbits) \
-       osl_dma_alloc_consistent((osh), (size), (0), (tot), (pap))
-#else
-#define        DMA_ALLOC_CONSISTENT(osh, size, align, tot, pap, dmah) \
-       osl_dma_alloc_consistent((osh), (size), (align), (tot), (pap))
-#endif /* BRCM_FULLMAC */
-
-#define        DMA_FREE_CONSISTENT(osh, va, size, pa, dmah) \
-       osl_dma_free_consistent((osh), (void *)(va), (size), (pa))
-extern void osl_dma_free_consistent(struct osl_info *osh, void *va,
-                                   uint size, unsigned long pa);
-
 /* map/unmap direction */
 #define        DMA_TX  1               /* TX direction for DMA */
 #define        DMA_RX  2               /* RX direction for DMA */
index bd701fc64598e4d3fb202c967f2090ea7ab6bfae..3c913a65da0d25386da44ef7288e90bdc798b945 100644 (file)
 #include <asm/addrspace.h>
 #endif
 
+#ifdef BRCM_FULLMAC
+#error "hnddma.c shouldn't be needed for FULLMAC"
+#endif
+
 /* debug/trace */
 #ifdef BCMDBG
 #define        DMA_ERROR(args) \
@@ -527,6 +531,18 @@ static bool _dma_alloc(dma_info_t *di, uint direction)
        return dma64_alloc(di, direction);
 }
 
+void *dma_alloc_consistent(struct osl_info *osh, uint size, u16 align_bits,
+                              uint *alloced, unsigned long *pap)
+{
+       if (align_bits) {
+               u16 align = (1 << align_bits);
+               if (!IS_ALIGNED(PAGE_SIZE, align))
+                       size += align;
+               *alloced = size;
+       }
+       return pci_alloc_consistent(osh->pdev, size, (dma_addr_t *) pap);
+}
+
 /* !! may be called with core in reset */
 static void _dma_detach(dma_info_t *di)
 {
@@ -539,15 +555,13 @@ static void _dma_detach(dma_info_t *di)
 
        /* free dma descriptor rings */
        if (di->txd64)
-               DMA_FREE_CONSISTENT(di->osh,
-                                   ((s8 *)di->txd64 -
-                                   di->txdalign), di->txdalloc,
-                                   (di->txdpaorig), &di->tx_dmah);
+               pci_free_consistent(di->osh->pdev, di->txdalloc,
+                                   ((s8 *)di->txd64 - di->txdalign),
+                                   (di->txdpaorig));
        if (di->rxd64)
-               DMA_FREE_CONSISTENT(di->osh,
-                                   ((s8 *)di->rxd64 -
-                                   di->rxdalign), di->rxdalloc,
-                                   (di->rxdpaorig), &di->rx_dmah);
+               pci_free_consistent(di->osh->pdev, di->rxdalloc,
+                                   ((s8 *)di->rxd64 - di->rxdalign),
+                                   (di->rxdpaorig));
 
        /* free packet pointer vectors */
        if (di->txp)
@@ -1080,8 +1094,8 @@ static void *dma_ringalloc(struct osl_info *osh, u32 boundary, uint size,
        u32 desc_strtaddr;
        u32 alignbytes = 1 << *alignbits;
 
-       va = DMA_ALLOC_CONSISTENT(osh, size, *alignbits, alloced, descpa,
-               dmah);
+       va = dma_alloc_consistent(osh, size, *alignbits, alloced, descpa);
+
        if (NULL == va)
                return NULL;
 
@@ -1089,9 +1103,9 @@ static void *dma_ringalloc(struct osl_info *osh, u32 boundary, uint size,
        if (((desc_strtaddr + size - 1) & boundary) != (desc_strtaddr
                                                        & boundary)) {
                *alignbits = dma_align_sizetobits(size);
-               DMA_FREE_CONSISTENT(osh, va, size, *descpa, dmah);
-               va = DMA_ALLOC_CONSISTENT(osh, size, *alignbits, alloced,
-                                         descpa, dmah);
+               pci_free_consistent(osh->pdev, size, va, *descpa);
+               va = dma_alloc_consistent(osh, size, *alignbits,
+                       alloced, descpa);
        }
        return va;
 }
index c0b06f95b48ad572b927daf534b2b0fb1b406a17..bcbce6e2401cebcba66aa004760a0f818d680209 100644 (file)
@@ -139,28 +139,6 @@ uint osl_pci_slot(struct osl_info *osh)
        return PCI_SLOT(((struct pci_dev *)osh->pdev)->devfn);
 }
 
-void *osl_dma_alloc_consistent(struct osl_info *osh, uint size, u16 align_bits,
-                              uint *alloced, unsigned long *pap)
-{
-       ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
-
-       if (align_bits) {
-               u16 align = (1 << align_bits);
-               if (!IS_ALIGNED(PAGE_SIZE, align))
-                       size += align;
-               *alloced = size;
-       }
-       return pci_alloc_consistent(osh->pdev, size, (dma_addr_t *) pap);
-}
-
-void osl_dma_free_consistent(struct osl_info *osh, void *va, uint size,
-                            unsigned long pa)
-{
-       ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
-
-       pci_free_consistent(osh->pdev, size, va, (dma_addr_t) pa);
-}
-
 #if defined(BCMDBG_ASSERT)
 void osl_assert(char *exp, char *file, int line)
 {