Lines Matching defs:dma
52 * @param dma dma memory area
57 oce_dma_alloc(POCE_SOFTC sc, bus_size_t size, POCE_DMA_MEM dma, int flags)
62 memset(dma, 0, sizeof(OCE_DMA_MEM));
69 size, 1, size, 0, NULL, NULL, &dma->tag);
72 rc = bus_dmamem_alloc(dma->tag,
73 &dma->ptr,
76 &dma->map);
79 dma->paddr = 0;
81 rc = bus_dmamap_load(dma->tag,
82 dma->map,
83 dma->ptr,
86 &dma->paddr, flags | BUS_DMA_NOWAIT);
87 if (dma->paddr == 0)
92 oce_dma_free(sc, dma);
100 * @param dma dma area to free
103 oce_dma_free(POCE_SOFTC sc, POCE_DMA_MEM dma)
105 if (dma->tag == NULL)
108 if (dma->paddr != 0) {
109 bus_dmamap_sync(dma->tag, dma->map,
111 bus_dmamap_unload(dma->tag, dma->map);
112 dma->paddr = 0;
115 if (dma->ptr != NULL) {
116 bus_dmamem_free(dma->tag, dma->ptr, dma->map);
117 dma->ptr = NULL;
120 bus_dma_tag_destroy(dma->tag);
121 dma->tag = NULL;
131 * @param segs dma memory segments
132 * @param nseg number of dma memory segments
157 oce_dma_free(sc, &ring->dma);
184 size, 8, 4096, 0, NULL, NULL, &ring->dma.tag);
189 rc = bus_dmamem_alloc(ring->dma.tag,
190 &ring->dma.ptr,
192 &ring->dma.map);
196 bzero(ring->dma.ptr, size);
197 bus_dmamap_sync(ring->dma.tag, ring->dma.map,
199 ring->dma.paddr = 0;
204 oce_dma_free(sc, &ring->dma);
222 * @param arg dma map phyical address table pointer
223 * @param segs dma memory segments
224 * @param nseg number of dma memory segments
248 * @brief Load bus dma map for a ring buffer
262 bus_dmamap_load(ring->dma.tag,
263 ring->dma.map,
264 ring->dma.ptr,