Lines Matching refs:mtk_gem

65 	struct mtk_gem_obj *mtk_gem;  in mtk_gem_create()  local
69 mtk_gem = mtk_gem_init(dev, size); in mtk_gem_create()
70 if (IS_ERR(mtk_gem)) in mtk_gem_create()
71 return ERR_CAST(mtk_gem); in mtk_gem_create()
73 obj = &mtk_gem->base; in mtk_gem_create()
75 mtk_gem->dma_attrs = DMA_ATTR_WRITE_COMBINE; in mtk_gem_create()
78 mtk_gem->dma_attrs |= DMA_ATTR_NO_KERNEL_MAPPING; in mtk_gem_create()
80 mtk_gem->cookie = dma_alloc_attrs(priv->dma_dev, obj->size, in mtk_gem_create()
81 &mtk_gem->dma_addr, GFP_KERNEL, in mtk_gem_create()
82 mtk_gem->dma_attrs); in mtk_gem_create()
83 if (!mtk_gem->cookie) { in mtk_gem_create()
90 mtk_gem->kvaddr = mtk_gem->cookie; in mtk_gem_create()
93 mtk_gem->cookie, &mtk_gem->dma_addr, in mtk_gem_create()
96 return mtk_gem; in mtk_gem_create()
100 kfree(mtk_gem); in mtk_gem_create()
106 struct mtk_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_gem_free_object() local
109 if (mtk_gem->sg) in mtk_gem_free_object()
110 drm_prime_gem_destroy(obj, mtk_gem->sg); in mtk_gem_free_object()
112 dma_free_attrs(priv->dma_dev, obj->size, mtk_gem->cookie, in mtk_gem_free_object()
113 mtk_gem->dma_addr, mtk_gem->dma_attrs); in mtk_gem_free_object()
118 kfree(mtk_gem); in mtk_gem_free_object()
124 struct mtk_gem_obj *mtk_gem; in mtk_gem_dumb_create() local
137 mtk_gem = mtk_gem_create(dev, args->size, false); in mtk_gem_dumb_create()
138 if (IS_ERR(mtk_gem)) in mtk_gem_dumb_create()
139 return PTR_ERR(mtk_gem); in mtk_gem_dumb_create()
145 ret = drm_gem_handle_create(file_priv, &mtk_gem->base, &args->handle); in mtk_gem_dumb_create()
150 drm_gem_object_put(&mtk_gem->base); in mtk_gem_dumb_create()
155 mtk_gem_free_object(&mtk_gem->base); in mtk_gem_dumb_create()
164 struct mtk_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_gem_object_mmap() local
181 ret = dma_mmap_attrs(priv->dma_dev, vma, mtk_gem->cookie, in mtk_gem_object_mmap()
182 mtk_gem->dma_addr, obj->size, mtk_gem->dma_attrs); in mtk_gem_object_mmap()
195 struct mtk_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_gem_prime_get_sg_table() local
204 ret = dma_get_sgtable_attrs(priv->dma_dev, sgt, mtk_gem->cookie, in mtk_gem_prime_get_sg_table()
205 mtk_gem->dma_addr, obj->size, in mtk_gem_prime_get_sg_table()
206 mtk_gem->dma_attrs); in mtk_gem_prime_get_sg_table()
219 struct mtk_gem_obj *mtk_gem; in mtk_gem_prime_import_sg_table() local
227 mtk_gem = mtk_gem_init(dev, attach->dmabuf->size); in mtk_gem_prime_import_sg_table()
228 if (IS_ERR(mtk_gem)) in mtk_gem_prime_import_sg_table()
229 return ERR_CAST(mtk_gem); in mtk_gem_prime_import_sg_table()
231 mtk_gem->dma_addr = sg_dma_address(sg->sgl); in mtk_gem_prime_import_sg_table()
232 mtk_gem->sg = sg; in mtk_gem_prime_import_sg_table()
234 return &mtk_gem->base; in mtk_gem_prime_import_sg_table()
239 struct mtk_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_gem_prime_vmap() local
243 if (mtk_gem->kvaddr) in mtk_gem_prime_vmap()
251 mtk_gem->pages = kcalloc(npages, sizeof(*mtk_gem->pages), GFP_KERNEL); in mtk_gem_prime_vmap()
252 if (!mtk_gem->pages) { in mtk_gem_prime_vmap()
258 drm_prime_sg_to_page_array(sgt, mtk_gem->pages, npages); in mtk_gem_prime_vmap()
260 mtk_gem->kvaddr = vmap(mtk_gem->pages, npages, VM_MAP, in mtk_gem_prime_vmap()
262 if (!mtk_gem->kvaddr) { in mtk_gem_prime_vmap()
265 kfree(mtk_gem->pages); in mtk_gem_prime_vmap()
272 iosys_map_set_vaddr(map, mtk_gem->kvaddr); in mtk_gem_prime_vmap()
279 struct mtk_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_gem_prime_vunmap() local
282 if (!mtk_gem->pages) in mtk_gem_prime_vunmap()
286 mtk_gem->kvaddr = NULL; in mtk_gem_prime_vunmap()
287 kfree(mtk_gem->pages); in mtk_gem_prime_vunmap()