Lines Matching refs:etnaviv_obj
14 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_get_sg_table() local
17 if (WARN_ON(!etnaviv_obj->pages)) /* should have already pinned! */ in etnaviv_gem_prime_get_sg_table()
20 return drm_prime_pages_to_sg(etnaviv_obj->pages, npages); in etnaviv_gem_prime_get_sg_table()
36 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_mmap() local
43 return etnaviv_obj->ops->mmap(etnaviv_obj, vma); in etnaviv_gem_prime_mmap()
49 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_pin() local
51 mutex_lock(&etnaviv_obj->lock); in etnaviv_gem_prime_pin()
52 etnaviv_gem_get_pages(etnaviv_obj); in etnaviv_gem_prime_pin()
53 mutex_unlock(&etnaviv_obj->lock); in etnaviv_gem_prime_pin()
61 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_unpin() local
63 mutex_lock(&etnaviv_obj->lock); in etnaviv_gem_prime_unpin()
65 mutex_unlock(&etnaviv_obj->lock); in etnaviv_gem_prime_unpin()
69 static void etnaviv_gem_prime_release(struct etnaviv_gem_object *etnaviv_obj) in etnaviv_gem_prime_release() argument
71 if (etnaviv_obj->vaddr) in etnaviv_gem_prime_release()
72 dma_buf_vunmap(etnaviv_obj->base.import_attach->dmabuf, in etnaviv_gem_prime_release()
73 etnaviv_obj->vaddr); in etnaviv_gem_prime_release()
78 if (etnaviv_obj->pages) in etnaviv_gem_prime_release()
79 kvfree(etnaviv_obj->pages); in etnaviv_gem_prime_release()
81 drm_prime_gem_destroy(&etnaviv_obj->base, etnaviv_obj->sgt); in etnaviv_gem_prime_release()
84 static void *etnaviv_gem_prime_vmap_impl(struct etnaviv_gem_object *etnaviv_obj) in etnaviv_gem_prime_vmap_impl() argument
86 lockdep_assert_held(&etnaviv_obj->lock); in etnaviv_gem_prime_vmap_impl()
88 return dma_buf_vmap(etnaviv_obj->base.import_attach->dmabuf); in etnaviv_gem_prime_vmap_impl()
91 static int etnaviv_gem_prime_mmap_obj(struct etnaviv_gem_object *etnaviv_obj, in etnaviv_gem_prime_mmap_obj() argument
94 return dma_buf_mmap(etnaviv_obj->base.dma_buf, vma, 0); in etnaviv_gem_prime_mmap_obj()
107 struct etnaviv_gem_object *etnaviv_obj; in etnaviv_gem_prime_import_sg_table() local
113 &etnaviv_gem_prime_ops, &etnaviv_obj); in etnaviv_gem_prime_import_sg_table()
117 lockdep_set_class(&etnaviv_obj->lock, &etnaviv_prime_lock_class); in etnaviv_gem_prime_import_sg_table()
121 etnaviv_obj->sgt = sgt; in etnaviv_gem_prime_import_sg_table()
122 etnaviv_obj->pages = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL); in etnaviv_gem_prime_import_sg_table()
123 if (!etnaviv_obj->pages) { in etnaviv_gem_prime_import_sg_table()
128 ret = drm_prime_sg_to_page_addr_arrays(sgt, etnaviv_obj->pages, in etnaviv_gem_prime_import_sg_table()
133 etnaviv_gem_obj_add(dev, &etnaviv_obj->base); in etnaviv_gem_prime_import_sg_table()
135 return &etnaviv_obj->base; in etnaviv_gem_prime_import_sg_table()
138 drm_gem_object_put_unlocked(&etnaviv_obj->base); in etnaviv_gem_prime_import_sg_table()
145 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_res_obj() local
147 return etnaviv_obj->resv; in etnaviv_gem_prime_res_obj()