Lines Matching refs:dma

80     struct gve_dma_handle *dma)  in gve_dma_alloc_coherent()  argument
97 &dma->tag); in gve_dma_alloc_coherent()
104 err = bus_dmamem_alloc(dma->tag, (void **) &dma->cpu_addr, in gve_dma_alloc_coherent()
106 &dma->map); in gve_dma_alloc_coherent()
114 dma->bus_addr = (bus_addr_t)-1; in gve_dma_alloc_coherent()
115 err = bus_dmamap_load(dma->tag, dma->map, dma->cpu_addr, size, in gve_dma_alloc_coherent()
116 gve_dmamap_load_callback, &dma->bus_addr, BUS_DMA_NOWAIT); in gve_dma_alloc_coherent()
117 if (err != 0 || dma->bus_addr == (bus_addr_t)-1) { in gve_dma_alloc_coherent()
125 bus_dmamem_free(dma->tag, dma->cpu_addr, dma->map); in gve_dma_alloc_coherent()
127 bus_dma_tag_destroy(dma->tag); in gve_dma_alloc_coherent()
129 dma->tag = NULL; in gve_dma_alloc_coherent()
135 gve_dma_free_coherent(struct gve_dma_handle *dma) in gve_dma_free_coherent() argument
137 bus_dmamap_sync(dma->tag, dma->map, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); in gve_dma_free_coherent()
138 bus_dmamap_unload(dma->tag, dma->map); in gve_dma_free_coherent()
139 bus_dmamem_free(dma->tag, dma->cpu_addr, dma->map); in gve_dma_free_coherent()
140 bus_dma_tag_destroy(dma->tag); in gve_dma_free_coherent()
145 struct gve_dma_handle *dma) in gve_dmamap_create() argument
162 &dma->tag); in gve_dmamap_create()
169 err = bus_dmamap_create(dma->tag, BUS_DMA_COHERENT, &dma->map); in gve_dmamap_create()
177 dma->bus_addr = (bus_addr_t)-1; in gve_dmamap_create()
178 err = bus_dmamap_load(dma->tag, dma->map, dma->cpu_addr, size, in gve_dmamap_create()
179 gve_dmamap_load_callback, &dma->bus_addr, BUS_DMA_WAITOK); in gve_dmamap_create()
180 if (err != 0 || dma->bus_addr == (bus_addr_t)-1) { in gve_dmamap_create()
189 bus_dmamap_destroy(dma->tag, dma->map); in gve_dmamap_create()
191 bus_dma_tag_destroy(dma->tag); in gve_dmamap_create()
193 dma->tag = NULL; in gve_dmamap_create()
199 gve_dmamap_destroy(struct gve_dma_handle *dma) in gve_dmamap_destroy() argument
201 bus_dmamap_sync(dma->tag, dma->map, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); in gve_dmamap_destroy()
202 bus_dmamap_unload(dma->tag, dma->map); in gve_dmamap_destroy()
203 bus_dmamap_destroy(dma->tag, dma->map); in gve_dmamap_destroy()
204 bus_dma_tag_destroy(dma->tag); in gve_dmamap_destroy()