Lines Matching refs:entry

49 void drm_sg_cleanup(struct drm_sg_mem * entry)
54 for (i = 0; i < entry->pages; i++) {
55 page = entry->pagelist[i];
60 vfree(entry->virtual);
62 kfree(entry->busaddr);
63 kfree(entry->pagelist);
64 kfree(entry);
75 struct drm_sg_mem *entry;
86 entry = kzalloc(sizeof(*entry), GFP_KERNEL);
87 if (!entry)
93 entry->pages = pages;
94 entry->pagelist = kcalloc(pages, sizeof(*entry->pagelist), GFP_KERNEL);
95 if (!entry->pagelist) {
96 kfree(entry);
100 entry->busaddr = kcalloc(pages, sizeof(*entry->busaddr), GFP_KERNEL);
101 if (!entry->busaddr) {
102 kfree(entry->pagelist);
103 kfree(entry);
107 entry->virtual = drm_vmalloc_dma(pages << PAGE_SHIFT);
108 if (!entry->virtual) {
109 kfree(entry->busaddr);
110 kfree(entry->pagelist);
111 kfree(entry);
118 memset(entry->virtual, 0, pages << PAGE_SHIFT);
120 entry->handle = ScatterHandle((unsigned long)entry->virtual);
122 DRM_DEBUG("handle = %08lx\n", entry->handle);
123 DRM_DEBUG("virtual = %p\n", entry->virtual);
125 for (i = (unsigned long)entry->virtual, j = 0; j < pages;
127 entry->pagelist[j] = vmalloc_to_page((void *)i);
128 if (!entry->pagelist[j])
130 SetPageReserved(entry->pagelist[j]);
133 request->handle = entry->handle;
135 dev->sg = entry;
147 tmp = page_address(entry->pagelist[i]);
153 tmp = (unsigned long *)((u8 *) entry->virtual +
165 tmp = page_address(entry->pagelist[i]);
180 drm_sg_cleanup(entry);
197 struct drm_sg_mem *entry;
202 entry = dev->sg;
205 if (!entry || entry->handle != request->handle)
208 DRM_DEBUG("virtual = %p\n", entry->virtual);
210 drm_sg_cleanup(entry);