Lines Matching defs:dma
437 iwm_dma_contig_alloc(bus_dma_tag_t tag, struct iwm_dma_info *dma,
442 dma->tag = NULL;
443 dma->map = NULL;
444 dma->size = size;
445 dma->vaddr = NULL;
449 1, size, 0, NULL, NULL, &dma->tag);
453 error = bus_dmamem_alloc(dma->tag, (void **)&dma->vaddr,
454 BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT, &dma->map);
458 error = bus_dmamap_load(dma->tag, dma->map, dma->vaddr, size,
459 iwm_dma_map_addr, &dma->paddr, BUS_DMA_NOWAIT);
461 bus_dmamem_free(dma->tag, dma->vaddr, dma->map);
462 dma->vaddr = NULL;
466 bus_dmamap_sync(dma->tag, dma->map, BUS_DMASYNC_PREWRITE);
471 iwm_dma_contig_free(dma);
477 iwm_dma_contig_free(struct iwm_dma_info *dma)
479 if (dma->vaddr != NULL) {
480 bus_dmamap_sync(dma->tag, dma->map,
482 bus_dmamap_unload(dma->tag, dma->map);
483 bus_dmamem_free(dma->tag, dma->vaddr, dma->map);
484 dma->vaddr = NULL;
486 if (dma->tag != NULL) {
487 bus_dma_tag_destroy(dma->tag);
488 dma->tag = NULL;