Lines Matching refs:dma
58 dev->dma = kmalloc(sizeof(*dev->dma), GFP_KERNEL);
59 if (!dev->dma)
62 (void) memset(dev->dma, 0, sizeof(*dev->dma));
65 (void) memset(&dev->dma->bufs[i], 0, sizeof(dev->dma->bufs[0]));
78 * finally the drm_device::dma structure itself.
82 struct drm_device_dma *dma = dev->dma;
85 if (!dma)
88 /* Clear dma buffers */
90 if (dma->bufs[i].seg_count) {
94 dma->bufs[i].buf_count,
95 dma->bufs[i].seg_count);
96 kfree(dma->bufs[i].seglist,
97 dma->bufs[i].seg_count * sizeof (*dma->bufs[0].seglist));
99 if (dma->bufs[i].buf_count) {
100 for (j = 0; j < dma->bufs[i].buf_count; j++) {
101 if (dma->bufs[i].buflist[j].dev_private) {
102 kfree(dma->bufs[i].buflist[j].dev_private,
103 dma->bufs[i].buflist[j].dev_priv_size);
106 kfree(dma->bufs[i].buflist,
107 dma->bufs[i].buf_count * sizeof(*dma->bufs[0].buflist));
111 if (dma->buflist)
112 kfree(dma->buflist, dma->buf_count * sizeof(*dma->buflist));
113 if (dma->pagelist)
114 kfree(dma->pagelist, dma->page_count * sizeof(*dma->pagelist));
115 kfree(dev->dma, sizeof(*dev->dma));
116 dev->dma = NULL;
150 struct drm_device_dma *dma = dev->dma;
153 if (!dma)
155 for (i = 0; i < dma->buf_count; i++) {
156 if (dma->buflist[i]->file_priv == file_priv) {
157 switch (dma->buflist[i]->list) {
159 drm_free_buffer(dev, dma->buflist[i]);
162 dma->buflist[i]->list = DRM_LIST_RECLAIM;