Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 236170
b: refs/heads/master
c: 235742a
h: refs/heads/master
v: v3
  • Loading branch information
Brett Rudley authored and Greg Kroah-Hartman committed Mar 1, 2011
1 parent fee84e1 commit 0a06a5c
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 52 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9010c46c3722d37befaf3d6e0d5024293efa3074
refs/heads/master: 235742ae4da1c8398a3968b2d5110256fc33d536
16 changes: 0 additions & 16 deletions trunk/drivers/staging/brcm80211/include/osl.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
40 changes: 27 additions & 13 deletions trunk/drivers/staging/brcm80211/util/hnddma.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@
#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) \
Expand Down Expand Up @@ -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)
{
Expand All @@ -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)
Expand Down Expand Up @@ -1080,18 +1094,18 @@ 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;

desc_strtaddr = (u32) roundup((unsigned long)va, alignbytes);
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;
}
Expand Down
22 changes: 0 additions & 22 deletions trunk/drivers/staging/brcm80211/util/linux_osl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down

0 comments on commit 0a06a5c

Please sign in to comment.