Lines Matching refs:obj

17 	struct udl_gem_object *obj;  in udl_gem_alloc_object()  local
19 obj = kzalloc(sizeof(*obj), GFP_KERNEL); in udl_gem_alloc_object()
20 if (obj == NULL) in udl_gem_alloc_object()
23 if (drm_gem_object_init(dev, &obj->base, size) != 0) { in udl_gem_alloc_object()
24 kfree(obj); in udl_gem_alloc_object()
28 obj->flags = UDL_BO_CACHEABLE; in udl_gem_alloc_object()
29 return obj; in udl_gem_alloc_object()
38 struct udl_gem_object *obj; in udl_gem_create() local
44 obj = udl_gem_alloc_object(dev, size); in udl_gem_create()
45 if (obj == NULL) in udl_gem_create()
48 ret = drm_gem_handle_create(file, &obj->base, &handle); in udl_gem_create()
50 drm_gem_object_release(&obj->base); in udl_gem_create()
51 kfree(obj); in udl_gem_create()
55 drm_gem_object_unreference_unlocked(&obj->base); in udl_gem_create()
60 static void update_vm_cache_attr(struct udl_gem_object *obj, in update_vm_cache_attr() argument
63 DRM_DEBUG_KMS("flags = 0x%x\n", obj->flags); in update_vm_cache_attr()
66 if (obj->flags & UDL_BO_CACHEABLE) { in update_vm_cache_attr()
68 } else if (obj->flags & UDL_BO_WC) { in update_vm_cache_attr()
105 struct udl_gem_object *obj = to_udl_bo(vma->vm_private_data); in udl_gem_fault() local
113 if (!obj->pages) in udl_gem_fault()
116 page = obj->pages[page_offset]; in udl_gem_fault()
130 int udl_gem_get_pages(struct udl_gem_object *obj) in udl_gem_get_pages() argument
134 if (obj->pages) in udl_gem_get_pages()
137 pages = drm_gem_get_pages(&obj->base); in udl_gem_get_pages()
141 obj->pages = pages; in udl_gem_get_pages()
146 void udl_gem_put_pages(struct udl_gem_object *obj) in udl_gem_put_pages() argument
148 if (obj->base.import_attach) { in udl_gem_put_pages()
149 drm_free_large(obj->pages); in udl_gem_put_pages()
150 obj->pages = NULL; in udl_gem_put_pages()
154 drm_gem_put_pages(&obj->base, obj->pages, false, false); in udl_gem_put_pages()
155 obj->pages = NULL; in udl_gem_put_pages()
158 int udl_gem_vmap(struct udl_gem_object *obj) in udl_gem_vmap() argument
160 int page_count = obj->base.size / PAGE_SIZE; in udl_gem_vmap()
163 if (obj->base.import_attach) { in udl_gem_vmap()
164 obj->vmapping = dma_buf_vmap(obj->base.import_attach->dmabuf); in udl_gem_vmap()
165 if (!obj->vmapping) in udl_gem_vmap()
170 ret = udl_gem_get_pages(obj); in udl_gem_vmap()
174 obj->vmapping = vmap(obj->pages, page_count, 0, PAGE_KERNEL); in udl_gem_vmap()
175 if (!obj->vmapping) in udl_gem_vmap()
180 void udl_gem_vunmap(struct udl_gem_object *obj) in udl_gem_vunmap() argument
182 if (obj->base.import_attach) { in udl_gem_vunmap()
183 dma_buf_vunmap(obj->base.import_attach->dmabuf, obj->vmapping); in udl_gem_vunmap()
187 vunmap(obj->vmapping); in udl_gem_vunmap()
189 udl_gem_put_pages(obj); in udl_gem_vunmap()
194 struct udl_gem_object *obj = to_udl_bo(gem_obj); in udl_gem_free_object() local
196 if (obj->vmapping) in udl_gem_free_object()
197 udl_gem_vunmap(obj); in udl_gem_free_object()
200 drm_prime_gem_destroy(gem_obj, obj->sg); in udl_gem_free_object()
204 if (obj->pages) in udl_gem_free_object()
205 udl_gem_put_pages(obj); in udl_gem_free_object()
216 struct drm_gem_object *obj; in udl_gem_mmap() local
220 obj = drm_gem_object_lookup(dev, file, handle); in udl_gem_mmap()
221 if (obj == NULL) { in udl_gem_mmap()
225 gobj = to_udl_bo(obj); in udl_gem_mmap()
230 ret = drm_gem_create_mmap_offset(obj); in udl_gem_mmap()