aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Rudley <brudley@broadcom.com>2011-02-25 10:39:09 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-28 21:13:36 -0500
commit9010c46c3722d37befaf3d6e0d5024293efa3074 (patch)
treec44a3aaeb955042b00068bda3ed27de6b199388a
parent2d586ea6de0ffe3e119ed0f1d4cb0adeb6874cbc (diff)
staging: brcm80211: Remove abstractions for pci_(un)map_single
The driver had abstracted DMA mapping functions. As abstraction is not required for the linux driver, these have been removed and replaced by native linux functions. 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>
-rw-r--r--drivers/staging/brcm80211/include/osl.h10
-rw-r--r--drivers/staging/brcm80211/util/hnddma.c15
-rw-r--r--drivers/staging/brcm80211/util/linux_osl.c20
3 files changed, 7 insertions, 38 deletions
diff --git a/drivers/staging/brcm80211/include/osl.h b/drivers/staging/brcm80211/include/osl.h
index 17fc274ef24..49015bdc653 100644
--- a/drivers/staging/brcm80211/include/osl.h
+++ b/drivers/staging/brcm80211/include/osl.h
@@ -70,16 +70,6 @@ extern void osl_dma_free_consistent(struct osl_info *osh, void *va,
70#define DMA_TX 1 /* TX direction for DMA */ 70#define DMA_TX 1 /* TX direction for DMA */
71#define DMA_RX 2 /* RX direction for DMA */ 71#define DMA_RX 2 /* RX direction for DMA */
72 72
73/* map/unmap shared (dma-able) memory */
74#define DMA_MAP(osh, va, size, direction, p, dmah) \
75 osl_dma_map((osh), (va), (size), (direction))
76#define DMA_UNMAP(osh, pa, size, direction, p, dmah) \
77 osl_dma_unmap((osh), (pa), (size), (direction))
78extern uint osl_dma_map(struct osl_info *osh, void *va, uint size,
79 int direction);
80extern void osl_dma_unmap(struct osl_info *osh, uint pa, uint size,
81 int direction);
82
83/* register access macros */ 73/* register access macros */
84#if defined(BCMSDIO) 74#if defined(BCMSDIO)
85#ifdef BRCM_FULLMAC 75#ifdef BRCM_FULLMAC
diff --git a/drivers/staging/brcm80211/util/hnddma.c b/drivers/staging/brcm80211/util/hnddma.c
index 66ebdfdf6cd..bd701fc6459 100644
--- a/drivers/staging/brcm80211/util/hnddma.c
+++ b/drivers/staging/brcm80211/util/hnddma.c
@@ -76,7 +76,7 @@ typedef struct dma_info {
76 uint *msg_level; /* message level pointer */ 76 uint *msg_level; /* message level pointer */
77 char name[MAXNAMEL]; /* callers name for diag msgs */ 77 char name[MAXNAMEL]; /* callers name for diag msgs */
78 78
79 void *osh; /* os handle */ 79 struct osl_info *osh; /* os handle */
80 si_t *sih; /* sb handle */ 80 si_t *sih; /* sb handle */
81 81
82 bool dma64; /* this dma engine is operating in 64-bit mode */ 82 bool dma64; /* this dma engine is operating in 64-bit mode */
@@ -866,8 +866,8 @@ static bool BCMFASTPATH _dma_rxfill(dma_info_t *di)
866 memset(&di->rxp_dmah[rxout], 0, 866 memset(&di->rxp_dmah[rxout], 0,
867 sizeof(hnddma_seg_map_t)); 867 sizeof(hnddma_seg_map_t));
868 868
869 pa = DMA_MAP(di->osh, p->data, 869 pa = pci_map_single(di->osh->pdev, p->data,
870 di->rxbufsize, DMA_RX, p, &di->rxp_dmah[rxout]); 870 di->rxbufsize, PCI_DMA_FROMDEVICE);
871 871
872 ASSERT(IS_ALIGNED(PHYSADDRLO(pa), 4)); 872 ASSERT(IS_ALIGNED(PHYSADDRLO(pa), 4));
873 873
@@ -1383,7 +1383,7 @@ static int dma64_txunframed(dma_info_t *di, void *buf, uint len, bool commit)
1383 if (len == 0) 1383 if (len == 0)
1384 return 0; 1384 return 0;
1385 1385
1386 pa = DMA_MAP(di->osh, buf, len, DMA_TX, NULL, &di->txp_dmah[txout]); 1386 pa = pci_map_single(di->osh->pdev, buf, len, PCI_DMA_TODEVICE);
1387 1387
1388 flags = (D64_CTRL1_SOF | D64_CTRL1_IOC | D64_CTRL1_EOF); 1388 flags = (D64_CTRL1_SOF | D64_CTRL1_IOC | D64_CTRL1_EOF);
1389 1389
@@ -1463,8 +1463,7 @@ static int BCMFASTPATH dma64_txfast(dma_info_t *di, struct sk_buff *p0,
1463 memset(&di->txp_dmah[txout], 0, 1463 memset(&di->txp_dmah[txout], 0,
1464 sizeof(hnddma_seg_map_t)); 1464 sizeof(hnddma_seg_map_t));
1465 1465
1466 pa = DMA_MAP(di->osh, data, len, DMA_TX, p, 1466 pa = pci_map_single(di->osh->pdev, data, len, PCI_DMA_TODEVICE);
1467 &di->txp_dmah[txout]);
1468 1467
1469 if (DMASGLIST_ENAB) { 1468 if (DMASGLIST_ENAB) {
1470 map = &di->txp_dmah[txout]; 1469 map = &di->txp_dmah[txout];
@@ -1626,7 +1625,7 @@ static void *BCMFASTPATH dma64_getnexttxp(dma_info_t *di, txd_range_t range)
1626 i = NEXTTXD(i); 1625 i = NEXTTXD(i);
1627 } 1626 }
1628 1627
1629 DMA_UNMAP(di->osh, pa, size, DMA_TX, txp, map); 1628 pci_unmap_single(di->osh->pdev, pa, size, PCI_DMA_TODEVICE);
1630 } 1629 }
1631 1630
1632 di->txin = i; 1631 di->txin = i;
@@ -1677,7 +1676,7 @@ static void *BCMFASTPATH dma64_getnextrxp(dma_info_t *di, bool forceall)
1677 di->dataoffsethigh)); 1676 di->dataoffsethigh));
1678 1677
1679 /* clear this packet from the descriptor ring */ 1678 /* clear this packet from the descriptor ring */
1680 DMA_UNMAP(di->osh, pa, di->rxbufsize, DMA_RX, rxp, &di->rxp_dmah[i]); 1679 pci_unmap_single(di->osh->pdev, pa, di->rxbufsize, PCI_DMA_FROMDEVICE);
1681 1680
1682 W_SM(&di->rxd64[i].addrlow, 0xdeadbeef); 1681 W_SM(&di->rxd64[i].addrlow, 0xdeadbeef);
1683 W_SM(&di->rxd64[i].addrhigh, 0xdeadbeef); 1682 W_SM(&di->rxd64[i].addrhigh, 0xdeadbeef);
diff --git a/drivers/staging/brcm80211/util/linux_osl.c b/drivers/staging/brcm80211/util/linux_osl.c
index d7c3c3f9dd8..c0b06f95b48 100644
--- a/drivers/staging/brcm80211/util/linux_osl.c
+++ b/drivers/staging/brcm80211/util/linux_osl.c
@@ -161,26 +161,6 @@ void osl_dma_free_consistent(struct osl_info *osh, void *va, uint size,
161 pci_free_consistent(osh->pdev, size, va, (dma_addr_t) pa); 161 pci_free_consistent(osh->pdev, size, va, (dma_addr_t) pa);
162} 162}
163 163
164uint BCMFASTPATH osl_dma_map(struct osl_info *osh, void *va, uint size,
165 int direction)
166{
167 int dir;
168
169 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
170 dir = (direction == DMA_TX) ? PCI_DMA_TODEVICE : PCI_DMA_FROMDEVICE;
171 return pci_map_single(osh->pdev, va, size, dir);
172}
173
174void BCMFASTPATH osl_dma_unmap(struct osl_info *osh, uint pa, uint size,
175 int direction)
176{
177 int dir;
178
179 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
180 dir = (direction == DMA_TX) ? PCI_DMA_TODEVICE : PCI_DMA_FROMDEVICE;
181 pci_unmap_single(osh->pdev, (u32) pa, size, dir);
182}
183
184#if defined(BCMDBG_ASSERT) 164#if defined(BCMDBG_ASSERT)
185void osl_assert(char *exp, char *file, int line) 165void osl_assert(char *exp, char *file, int line)
186{ 166{