Lines Matching refs:mtk_gem

56 	struct mtk_drm_gem_obj *mtk_gem;  in mtk_drm_gem_create()  local
60 mtk_gem = mtk_drm_gem_init(dev, size); in mtk_drm_gem_create()
61 if (IS_ERR(mtk_gem)) in mtk_drm_gem_create()
62 return ERR_CAST(mtk_gem); in mtk_drm_gem_create()
64 obj = &mtk_gem->base; in mtk_drm_gem_create()
66 mtk_gem->dma_attrs = DMA_ATTR_WRITE_COMBINE; in mtk_drm_gem_create()
69 mtk_gem->dma_attrs |= DMA_ATTR_NO_KERNEL_MAPPING; in mtk_drm_gem_create()
71 mtk_gem->cookie = dma_alloc_attrs(priv->dma_dev, obj->size, in mtk_drm_gem_create()
72 &mtk_gem->dma_addr, GFP_KERNEL, in mtk_drm_gem_create()
73 mtk_gem->dma_attrs); in mtk_drm_gem_create()
74 if (!mtk_gem->cookie) { in mtk_drm_gem_create()
81 mtk_gem->kvaddr = mtk_gem->cookie; in mtk_drm_gem_create()
84 mtk_gem->cookie, &mtk_gem->dma_addr, in mtk_drm_gem_create()
87 return mtk_gem; in mtk_drm_gem_create()
91 kfree(mtk_gem); in mtk_drm_gem_create()
97 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_drm_gem_free_object() local
100 if (mtk_gem->sg) in mtk_drm_gem_free_object()
101 drm_prime_gem_destroy(obj, mtk_gem->sg); in mtk_drm_gem_free_object()
103 dma_free_attrs(priv->dma_dev, obj->size, mtk_gem->cookie, in mtk_drm_gem_free_object()
104 mtk_gem->dma_addr, mtk_gem->dma_attrs); in mtk_drm_gem_free_object()
109 kfree(mtk_gem); in mtk_drm_gem_free_object()
115 struct mtk_drm_gem_obj *mtk_gem; in mtk_drm_gem_dumb_create() local
121 mtk_gem = mtk_drm_gem_create(dev, args->size, false); in mtk_drm_gem_dumb_create()
122 if (IS_ERR(mtk_gem)) in mtk_drm_gem_dumb_create()
123 return PTR_ERR(mtk_gem); in mtk_drm_gem_dumb_create()
129 ret = drm_gem_handle_create(file_priv, &mtk_gem->base, &args->handle); in mtk_drm_gem_dumb_create()
134 drm_gem_object_put(&mtk_gem->base); in mtk_drm_gem_dumb_create()
139 mtk_drm_gem_free_object(&mtk_gem->base); in mtk_drm_gem_dumb_create()
148 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_drm_gem_object_mmap() local
165 ret = dma_mmap_attrs(priv->dma_dev, vma, mtk_gem->cookie, in mtk_drm_gem_object_mmap()
166 mtk_gem->dma_addr, obj->size, mtk_gem->dma_attrs); in mtk_drm_gem_object_mmap()
181 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_gem_prime_get_sg_table() local
190 ret = dma_get_sgtable_attrs(priv->dma_dev, sgt, mtk_gem->cookie, in mtk_gem_prime_get_sg_table()
191 mtk_gem->dma_addr, obj->size, in mtk_gem_prime_get_sg_table()
192 mtk_gem->dma_attrs); in mtk_gem_prime_get_sg_table()
205 struct mtk_drm_gem_obj *mtk_gem; in mtk_gem_prime_import_sg_table() local
213 mtk_gem = mtk_drm_gem_init(dev, attach->dmabuf->size); in mtk_gem_prime_import_sg_table()
214 if (IS_ERR(mtk_gem)) in mtk_gem_prime_import_sg_table()
215 return ERR_CAST(mtk_gem); in mtk_gem_prime_import_sg_table()
217 mtk_gem->dma_addr = sg_dma_address(sg->sgl); in mtk_gem_prime_import_sg_table()
218 mtk_gem->sg = sg; in mtk_gem_prime_import_sg_table()
220 return &mtk_gem->base; in mtk_gem_prime_import_sg_table()
225 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_drm_gem_prime_vmap() local
229 if (mtk_gem->kvaddr) in mtk_drm_gem_prime_vmap()
237 mtk_gem->pages = kcalloc(npages, sizeof(*mtk_gem->pages), GFP_KERNEL); in mtk_drm_gem_prime_vmap()
238 if (!mtk_gem->pages) { in mtk_drm_gem_prime_vmap()
243 drm_prime_sg_to_page_array(sgt, mtk_gem->pages, npages); in mtk_drm_gem_prime_vmap()
245 mtk_gem->kvaddr = vmap(mtk_gem->pages, npages, VM_MAP, in mtk_drm_gem_prime_vmap()
250 iosys_map_set_vaddr(map, mtk_gem->kvaddr); in mtk_drm_gem_prime_vmap()
258 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_drm_gem_prime_vunmap() local
261 if (!mtk_gem->pages) in mtk_drm_gem_prime_vunmap()
265 mtk_gem->kvaddr = 0; in mtk_drm_gem_prime_vunmap()
266 kfree(mtk_gem->pages); in mtk_drm_gem_prime_vunmap()