Lines Matching refs:etnaviv_obj
16 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_get_sg_table() local
19 if (WARN_ON(!etnaviv_obj->pages)) /* should have already pinned! */ in etnaviv_gem_prime_get_sg_table()
22 return drm_prime_pages_to_sg(obj->dev, etnaviv_obj->pages, npages); in etnaviv_gem_prime_get_sg_table()
38 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_mmap() local
45 return etnaviv_obj->ops->mmap(etnaviv_obj, vma); in etnaviv_gem_prime_mmap()
51 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_pin() local
53 mutex_lock(&etnaviv_obj->lock); in etnaviv_gem_prime_pin()
54 etnaviv_gem_get_pages(etnaviv_obj); in etnaviv_gem_prime_pin()
55 mutex_unlock(&etnaviv_obj->lock); in etnaviv_gem_prime_pin()
63 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_unpin() local
65 mutex_lock(&etnaviv_obj->lock); in etnaviv_gem_prime_unpin()
67 mutex_unlock(&etnaviv_obj->lock); in etnaviv_gem_prime_unpin()
71 static void etnaviv_gem_prime_release(struct etnaviv_gem_object *etnaviv_obj) in etnaviv_gem_prime_release() argument
73 if (etnaviv_obj->vaddr) in etnaviv_gem_prime_release()
74 dma_buf_vunmap(etnaviv_obj->base.import_attach->dmabuf, in etnaviv_gem_prime_release()
75 etnaviv_obj->vaddr); in etnaviv_gem_prime_release()
80 if (etnaviv_obj->pages) in etnaviv_gem_prime_release()
81 kvfree(etnaviv_obj->pages); in etnaviv_gem_prime_release()
83 drm_prime_gem_destroy(&etnaviv_obj->base, etnaviv_obj->sgt); in etnaviv_gem_prime_release()
86 static void *etnaviv_gem_prime_vmap_impl(struct etnaviv_gem_object *etnaviv_obj) in etnaviv_gem_prime_vmap_impl() argument
88 lockdep_assert_held(&etnaviv_obj->lock); in etnaviv_gem_prime_vmap_impl()
90 return dma_buf_vmap(etnaviv_obj->base.import_attach->dmabuf); in etnaviv_gem_prime_vmap_impl()
93 static int etnaviv_gem_prime_mmap_obj(struct etnaviv_gem_object *etnaviv_obj, in etnaviv_gem_prime_mmap_obj() argument
96 return dma_buf_mmap(etnaviv_obj->base.dma_buf, vma, 0); in etnaviv_gem_prime_mmap_obj()
109 struct etnaviv_gem_object *etnaviv_obj; in etnaviv_gem_prime_import_sg_table() local
114 &etnaviv_gem_prime_ops, &etnaviv_obj); in etnaviv_gem_prime_import_sg_table()
118 lockdep_set_class(&etnaviv_obj->lock, &etnaviv_prime_lock_class); in etnaviv_gem_prime_import_sg_table()
122 etnaviv_obj->sgt = sgt; in etnaviv_gem_prime_import_sg_table()
123 etnaviv_obj->pages = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL); in etnaviv_gem_prime_import_sg_table()
124 if (!etnaviv_obj->pages) { in etnaviv_gem_prime_import_sg_table()
129 ret = drm_prime_sg_to_page_addr_arrays(sgt, etnaviv_obj->pages, in etnaviv_gem_prime_import_sg_table()
134 etnaviv_gem_obj_add(dev, &etnaviv_obj->base); in etnaviv_gem_prime_import_sg_table()
136 return &etnaviv_obj->base; in etnaviv_gem_prime_import_sg_table()
139 drm_gem_object_put(&etnaviv_obj->base); in etnaviv_gem_prime_import_sg_table()