Lines Matching refs:etnaviv_obj

19 	struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj);  in etnaviv_gem_prime_get_sg_table()  local
22 if (WARN_ON(!etnaviv_obj->pages)) /* should have already pinned! */ in etnaviv_gem_prime_get_sg_table()
25 return drm_prime_pages_to_sg(obj->dev, etnaviv_obj->pages, npages); in etnaviv_gem_prime_get_sg_table()
43 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_pin() local
45 mutex_lock(&etnaviv_obj->lock); in etnaviv_gem_prime_pin()
46 etnaviv_gem_get_pages(etnaviv_obj); in etnaviv_gem_prime_pin()
47 mutex_unlock(&etnaviv_obj->lock); in etnaviv_gem_prime_pin()
55 struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); in etnaviv_gem_prime_unpin() local
57 mutex_lock(&etnaviv_obj->lock); in etnaviv_gem_prime_unpin()
59 mutex_unlock(&etnaviv_obj->lock); in etnaviv_gem_prime_unpin()
63 static void etnaviv_gem_prime_release(struct etnaviv_gem_object *etnaviv_obj) in etnaviv_gem_prime_release() argument
65 struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(etnaviv_obj->vaddr); in etnaviv_gem_prime_release()
67 if (etnaviv_obj->vaddr) in etnaviv_gem_prime_release()
68 dma_buf_vunmap(etnaviv_obj->base.import_attach->dmabuf, &map); in etnaviv_gem_prime_release()
73 kvfree(etnaviv_obj->pages); in etnaviv_gem_prime_release()
75 drm_prime_gem_destroy(&etnaviv_obj->base, etnaviv_obj->sgt); in etnaviv_gem_prime_release()
78 static void *etnaviv_gem_prime_vmap_impl(struct etnaviv_gem_object *etnaviv_obj) in etnaviv_gem_prime_vmap_impl() argument
83 lockdep_assert_held(&etnaviv_obj->lock); in etnaviv_gem_prime_vmap_impl()
85 ret = dma_buf_vmap(etnaviv_obj->base.import_attach->dmabuf, &map); 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
112 &etnaviv_gem_prime_ops, &etnaviv_obj); in etnaviv_gem_prime_import_sg_table()
116 lockdep_set_class(&etnaviv_obj->lock, &etnaviv_prime_lock_class); in etnaviv_gem_prime_import_sg_table()
120 etnaviv_obj->sgt = sgt; in etnaviv_gem_prime_import_sg_table()
121 etnaviv_obj->pages = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL); in etnaviv_gem_prime_import_sg_table()
122 if (!etnaviv_obj->pages) { in etnaviv_gem_prime_import_sg_table()
127 ret = drm_prime_sg_to_page_array(sgt, etnaviv_obj->pages, npages); in etnaviv_gem_prime_import_sg_table()
131 etnaviv_gem_obj_add(dev, &etnaviv_obj->base); in etnaviv_gem_prime_import_sg_table()
133 return &etnaviv_obj->base; in etnaviv_gem_prime_import_sg_table()
136 drm_gem_object_put(&etnaviv_obj->base); in etnaviv_gem_prime_import_sg_table()