Lines Matching refs:dmah

47 	struct drm_dma_handle *dmah = arg;
55 dmah->busaddr = segs[0].ds_addr;
63 struct drm_dma_handle *dmah;
69 dmah = malloc(sizeof(struct drm_dma_handle), DRM_MEM_DMA,
71 if (dmah == NULL)
82 &dmah->tag);
84 free(dmah, DRM_MEM_DMA);
92 ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr, flags, &dmah->map);
94 bus_dma_tag_destroy(dmah->tag);
95 free(dmah, DRM_MEM_DMA);
100 ret = bus_dmamap_load(dmah->tag, dmah->map, dmah->vaddr,
101 gart_info->table_size, drm_ati_alloc_pcigart_table_cb, dmah, 0);
103 bus_dmamem_free(dmah->tag, dmah->vaddr, dmah->map);
104 bus_dma_tag_destroy(dmah->tag);
105 free(dmah, DRM_MEM_DMA);
110 dmah->tag = dev->pa.pa_dmat;
116 ret = bus_dmamem_alloc(dmah->tag, gart_info->table_size, PAGE_SIZE,
117 0, dmah->segs, 1, &nsegs, flags);
121 dmah->tag = NULL;
122 free(dmah, DRM_MEM_DMA);
127 bus_dmamem_free(dmah->tag, dmah->segs, 1);
128 dmah->tag = NULL;
129 free(dmah, DRM_MEM_DMA);
133 ret = bus_dmamem_map(dmah->tag, dmah->segs, nsegs,
134 gart_info->table_size, &dmah->vaddr,
138 bus_dmamem_free(dmah->tag, dmah->segs, 1);
139 dmah->tag = NULL;
140 free(dmah, DRM_MEM_DMA);
144 ret = bus_dmamap_create(dmah->tag, gart_info->table_size, 1,
146 BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW, &dmah->map);
149 bus_dmamem_unmap(dmah->tag, dmah->vaddr, gart_info->table_size);
150 bus_dmamem_free(dmah->tag, dmah->segs, 1);
151 dmah->tag = NULL;
152 free(dmah, DRM_MEM_DMA);
156 ret = bus_dmamap_load(dmah->tag, dmah->map, dmah->vaddr,
160 bus_dmamap_destroy(dmah->tag, dmah->map);
161 bus_dmamem_unmap(dmah->tag, dmah->vaddr, gart_info->table_size);
162 bus_dmamem_free(dmah->tag, dmah->segs, 1);
163 dmah->tag = NULL;
164 free(dmah, DRM_MEM_DMA);
167 dmah->busaddr = dmah->map->dm_segs[0].ds_addr;
168 dmah->size = gart_info->table_size;
169 dmah->nsegs = 1;
176 memset(dmah->vaddr, 0, gart_info->table_size);
180 dev->sg->dmah = dmah;
189 struct drm_dma_handle *dmah = dev->sg->dmah;
192 bus_dmamem_free(dmah->tag, dmah->vaddr, dmah->map);
193 bus_dma_tag_destroy(dmah->tag);
195 bus_dmamap_unload(dmah->tag, dmah->map);
196 bus_dmamap_destroy(dmah->tag, dmah->map);
197 bus_dmamem_unmap(dmah->tag, dmah->vaddr, dmah->size);
198 bus_dmamem_free(dmah->tag, dmah->segs, 1);
199 dmah->tag = NULL;
201 free(dmah, DRM_MEM_DMA);
202 dev->sg->dmah = NULL;
218 if (dev->sg->dmah)
253 address = (void *)dev->sg->dmah->vaddr;
254 bus_address = dev->sg->dmah->busaddr;