Lines Matching full:dma

3  * DMA IOCTL and function support
40 * Initialize the DMA data.
51 dev->dma = malloc(sizeof(*dev->dma), DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); in drm_dma_setup()
52 if (!dev->dma) in drm_dma_setup()
56 memset(&dev->dma->bufs[i], 0, sizeof(dev->dma->bufs[0])); in drm_dma_setup()
62 * Cleanup the DMA resources.
66 * Free all pages associated with DMA buffers, the buffers and pages lists, and
67 * finally the drm_device::dma structure itself.
71 struct drm_device_dma *dma = dev->dma; in drm_dma_takedown() local
74 if (!dma) in drm_dma_takedown()
77 /* Clear dma buffers */ in drm_dma_takedown()
79 if (dma->bufs[i].seg_count) { in drm_dma_takedown()
83 dma->bufs[i].buf_count, in drm_dma_takedown()
84 dma->bufs[i].seg_count); in drm_dma_takedown()
85 for (j = 0; j < dma->bufs[i].seg_count; j++) { in drm_dma_takedown()
86 if (dma->bufs[i].seglist[j]) { in drm_dma_takedown()
87 drm_pci_free(dev, dma->bufs[i].seglist[j]); in drm_dma_takedown()
90 free(dma->bufs[i].seglist, DRM_MEM_SEGS); in drm_dma_takedown()
92 if (dma->bufs[i].buf_count) { in drm_dma_takedown()
93 for (j = 0; j < dma->bufs[i].buf_count; j++) { in drm_dma_takedown()
94 free(dma->bufs[i].buflist[j].dev_private, in drm_dma_takedown()
97 free(dma->bufs[i].buflist, DRM_MEM_BUFS); in drm_dma_takedown()
101 free(dma->buflist, DRM_MEM_BUFS); in drm_dma_takedown()
102 free(dma->pagelist, DRM_MEM_PAGES); in drm_dma_takedown()
103 free(dev->dma, DRM_MEM_DRIVER); in drm_dma_takedown()
104 dev->dma = NULL; in drm_dma_takedown()
136 struct drm_device_dma *dma = dev->dma; in drm_core_reclaim_buffers() local
139 if (!dma) in drm_core_reclaim_buffers()
141 for (i = 0; i < dma->buf_count; i++) { in drm_core_reclaim_buffers()
142 if (dma->buflist[i]->file_priv == file_priv) { in drm_core_reclaim_buffers()
143 switch (dma->buflist[i]->list) { in drm_core_reclaim_buffers()
145 drm_free_buffer(dev, dma->buflist[i]); in drm_core_reclaim_buffers()
148 dma->buflist[i]->list = DRM_LIST_RECLAIM; in drm_core_reclaim_buffers()