Lines Matching refs:entry

42 void drm_sg_cleanup(struct drm_sg_mem * entry)  in drm_sg_cleanup()  argument
44 if (entry == NULL) in drm_sg_cleanup()
47 if (entry->vaddr != NULL) in drm_sg_cleanup()
48 kmem_free(entry->vaddr, IDX_TO_OFF(entry->pages)); in drm_sg_cleanup()
50 free(entry->busaddr, DRM_MEM_SGLISTS); in drm_sg_cleanup()
51 free(entry, DRM_MEM_DRIVER); in drm_sg_cleanup()
56 struct drm_sg_mem *entry; in drm_sg_alloc() local
68 entry = malloc(sizeof(*entry), DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); in drm_sg_alloc()
69 if (!entry) in drm_sg_alloc()
75 entry->pages = atop(size); in drm_sg_alloc()
76 entry->busaddr = malloc(entry->pages * sizeof(*entry->busaddr), in drm_sg_alloc()
78 if (!entry->busaddr) { in drm_sg_alloc()
79 free(entry, DRM_MEM_DRIVER); in drm_sg_alloc()
83 entry->vaddr = drm_vmalloc_dma(size); in drm_sg_alloc()
84 if (entry->vaddr == NULL) { in drm_sg_alloc()
85 free(entry->busaddr, DRM_MEM_DRIVER); in drm_sg_alloc()
86 free(entry, DRM_MEM_DRIVER); in drm_sg_alloc()
90 for (pindex = 0; pindex < entry->pages; pindex++) { in drm_sg_alloc()
91 entry->busaddr[pindex] = in drm_sg_alloc()
92 vtophys((uintptr_t)entry->vaddr + IDX_TO_OFF(pindex)); in drm_sg_alloc()
95 request->handle = (uintptr_t)entry->vaddr; in drm_sg_alloc()
97 dev->sg = entry; in drm_sg_alloc()
100 entry->pages, entry->vaddr, *(unsigned long *)entry->vaddr); in drm_sg_alloc()
118 struct drm_sg_mem *entry; in drm_sg_free() local
123 entry = dev->sg; in drm_sg_free()
126 if (!entry || (uintptr_t)entry->vaddr != request->handle) in drm_sg_free()
129 DRM_DEBUG("free %p\n", entry->vaddr); in drm_sg_free()
131 drm_sg_cleanup(entry); in drm_sg_free()