Lines Matching refs:entry

44 void drm_sg_cleanup(struct drm_sg_mem * entry)  in drm_sg_cleanup()  argument
46 if (entry == NULL) in drm_sg_cleanup()
49 if (entry->vaddr != 0) in drm_sg_cleanup()
50 kmem_free(kernel_arena, entry->vaddr, IDX_TO_OFF(entry->pages)); in drm_sg_cleanup()
52 free(entry->busaddr, DRM_MEM_SGLISTS); in drm_sg_cleanup()
53 free(entry, DRM_MEM_DRIVER); in drm_sg_cleanup()
58 struct drm_sg_mem *entry; in drm_sg_alloc() local
70 entry = malloc(sizeof(*entry), DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); in drm_sg_alloc()
71 if (!entry) in drm_sg_alloc()
77 entry->pages = OFF_TO_IDX(size); in drm_sg_alloc()
78 entry->busaddr = malloc(entry->pages * sizeof(*entry->busaddr), in drm_sg_alloc()
80 if (!entry->busaddr) { in drm_sg_alloc()
81 free(entry, DRM_MEM_DRIVER); in drm_sg_alloc()
85 entry->vaddr = drm_vmalloc_dma(size); in drm_sg_alloc()
86 if (entry->vaddr == 0) { in drm_sg_alloc()
87 free(entry->busaddr, DRM_MEM_DRIVER); in drm_sg_alloc()
88 free(entry, DRM_MEM_DRIVER); in drm_sg_alloc()
92 for (pindex = 0; pindex < entry->pages; pindex++) { in drm_sg_alloc()
93 entry->busaddr[pindex] = in drm_sg_alloc()
94 vtophys(entry->vaddr + IDX_TO_OFF(pindex)); in drm_sg_alloc()
97 request->handle = entry->vaddr; in drm_sg_alloc()
99 dev->sg = entry; in drm_sg_alloc()
102 entry->pages, entry->vaddr, *(unsigned long *)entry->vaddr); in drm_sg_alloc()
120 struct drm_sg_mem *entry; in drm_sg_free() local
125 entry = dev->sg; in drm_sg_free()
128 if (!entry || entry->vaddr != request->handle) in drm_sg_free()
131 DRM_DEBUG("free 0x%zx\n", entry->vaddr); in drm_sg_free()
133 drm_sg_cleanup(entry); in drm_sg_free()