Lines Matching refs:entry

55 static void drm_sg_cleanup(struct drm_sg_mem * entry)  in drm_sg_cleanup()  argument
60 for (i = 0; i < entry->pages; i++) { in drm_sg_cleanup()
61 page = entry->pagelist[i]; in drm_sg_cleanup()
66 vfree(entry->virtual); in drm_sg_cleanup()
68 kfree(entry->busaddr); in drm_sg_cleanup()
69 kfree(entry->pagelist); in drm_sg_cleanup()
70 kfree(entry); in drm_sg_cleanup()
91 struct drm_sg_mem *entry; in drm_legacy_sg_alloc() local
105 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in drm_legacy_sg_alloc()
106 if (!entry) in drm_legacy_sg_alloc()
112 entry->pages = pages; in drm_legacy_sg_alloc()
113 entry->pagelist = kcalloc(pages, sizeof(*entry->pagelist), GFP_KERNEL); in drm_legacy_sg_alloc()
114 if (!entry->pagelist) { in drm_legacy_sg_alloc()
115 kfree(entry); in drm_legacy_sg_alloc()
119 entry->busaddr = kcalloc(pages, sizeof(*entry->busaddr), GFP_KERNEL); in drm_legacy_sg_alloc()
120 if (!entry->busaddr) { in drm_legacy_sg_alloc()
121 kfree(entry->pagelist); in drm_legacy_sg_alloc()
122 kfree(entry); in drm_legacy_sg_alloc()
126 entry->virtual = drm_vmalloc_dma(pages << PAGE_SHIFT); in drm_legacy_sg_alloc()
127 if (!entry->virtual) { in drm_legacy_sg_alloc()
128 kfree(entry->busaddr); in drm_legacy_sg_alloc()
129 kfree(entry->pagelist); in drm_legacy_sg_alloc()
130 kfree(entry); in drm_legacy_sg_alloc()
137 memset(entry->virtual, 0, pages << PAGE_SHIFT); in drm_legacy_sg_alloc()
139 entry->handle = ScatterHandle((unsigned long)entry->virtual); in drm_legacy_sg_alloc()
141 DRM_DEBUG("handle = %08lx\n", entry->handle); in drm_legacy_sg_alloc()
142 DRM_DEBUG("virtual = %p\n", entry->virtual); in drm_legacy_sg_alloc()
144 for (i = (unsigned long)entry->virtual, j = 0; j < pages; in drm_legacy_sg_alloc()
146 entry->pagelist[j] = vmalloc_to_page((void *)i); in drm_legacy_sg_alloc()
147 if (!entry->pagelist[j]) in drm_legacy_sg_alloc()
149 SetPageReserved(entry->pagelist[j]); in drm_legacy_sg_alloc()
152 request->handle = entry->handle; in drm_legacy_sg_alloc()
154 dev->sg = entry; in drm_legacy_sg_alloc()
166 tmp = page_address(entry->pagelist[i]); in drm_legacy_sg_alloc()
172 tmp = (unsigned long *)((u8 *) entry->virtual + in drm_legacy_sg_alloc()
184 tmp = page_address(entry->pagelist[i]); in drm_legacy_sg_alloc()
199 drm_sg_cleanup(entry); in drm_legacy_sg_alloc()
207 struct drm_sg_mem *entry; in drm_legacy_sg_free() local
215 entry = dev->sg; in drm_legacy_sg_free()
218 if (!entry || entry->handle != request->handle) in drm_legacy_sg_free()
221 DRM_DEBUG("virtual = %p\n", entry->virtual); in drm_legacy_sg_free()
223 drm_sg_cleanup(entry); in drm_legacy_sg_free()