Lines Matching refs:mtk_gem
61 struct mtk_drm_gem_obj *mtk_gem; in mtk_drm_gem_create() local
65 mtk_gem = mtk_drm_gem_init(dev, size); in mtk_drm_gem_create()
66 if (IS_ERR(mtk_gem)) in mtk_drm_gem_create()
67 return ERR_CAST(mtk_gem); in mtk_drm_gem_create()
69 obj = &mtk_gem->base; in mtk_drm_gem_create()
71 mtk_gem->dma_attrs = DMA_ATTR_WRITE_COMBINE; in mtk_drm_gem_create()
74 mtk_gem->dma_attrs |= DMA_ATTR_NO_KERNEL_MAPPING; in mtk_drm_gem_create()
76 mtk_gem->cookie = dma_alloc_attrs(priv->dma_dev, obj->size, in mtk_drm_gem_create()
77 &mtk_gem->dma_addr, GFP_KERNEL, in mtk_drm_gem_create()
78 mtk_gem->dma_attrs); in mtk_drm_gem_create()
79 if (!mtk_gem->cookie) { in mtk_drm_gem_create()
86 mtk_gem->kvaddr = mtk_gem->cookie; in mtk_drm_gem_create()
89 mtk_gem->cookie, &mtk_gem->dma_addr, in mtk_drm_gem_create()
92 return mtk_gem; in mtk_drm_gem_create()
96 kfree(mtk_gem); in mtk_drm_gem_create()
102 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_drm_gem_free_object() local
105 if (mtk_gem->sg) in mtk_drm_gem_free_object()
106 drm_prime_gem_destroy(obj, mtk_gem->sg); in mtk_drm_gem_free_object()
108 dma_free_attrs(priv->dma_dev, obj->size, mtk_gem->cookie, in mtk_drm_gem_free_object()
109 mtk_gem->dma_addr, mtk_gem->dma_attrs); in mtk_drm_gem_free_object()
114 kfree(mtk_gem); in mtk_drm_gem_free_object()
120 struct mtk_drm_gem_obj *mtk_gem; in mtk_drm_gem_dumb_create() local
126 mtk_gem = mtk_drm_gem_create(dev, args->size, false); in mtk_drm_gem_dumb_create()
127 if (IS_ERR(mtk_gem)) in mtk_drm_gem_dumb_create()
128 return PTR_ERR(mtk_gem); in mtk_drm_gem_dumb_create()
134 ret = drm_gem_handle_create(file_priv, &mtk_gem->base, &args->handle); in mtk_drm_gem_dumb_create()
139 drm_gem_object_put(&mtk_gem->base); in mtk_drm_gem_dumb_create()
144 mtk_drm_gem_free_object(&mtk_gem->base); in mtk_drm_gem_dumb_create()
153 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_drm_gem_object_mmap() local
170 ret = dma_mmap_attrs(priv->dma_dev, vma, mtk_gem->cookie, in mtk_drm_gem_object_mmap()
171 mtk_gem->dma_addr, obj->size, mtk_gem->dma_attrs); in mtk_drm_gem_object_mmap()
184 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_gem_prime_get_sg_table() local
193 ret = dma_get_sgtable_attrs(priv->dma_dev, sgt, mtk_gem->cookie, in mtk_gem_prime_get_sg_table()
194 mtk_gem->dma_addr, obj->size, in mtk_gem_prime_get_sg_table()
195 mtk_gem->dma_attrs); in mtk_gem_prime_get_sg_table()
208 struct mtk_drm_gem_obj *mtk_gem; in mtk_gem_prime_import_sg_table() local
216 mtk_gem = mtk_drm_gem_init(dev, attach->dmabuf->size); in mtk_gem_prime_import_sg_table()
217 if (IS_ERR(mtk_gem)) in mtk_gem_prime_import_sg_table()
218 return ERR_CAST(mtk_gem); in mtk_gem_prime_import_sg_table()
220 mtk_gem->dma_addr = sg_dma_address(sg->sgl); in mtk_gem_prime_import_sg_table()
221 mtk_gem->sg = sg; in mtk_gem_prime_import_sg_table()
223 return &mtk_gem->base; in mtk_gem_prime_import_sg_table()
228 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_drm_gem_prime_vmap() local
232 if (mtk_gem->kvaddr) in mtk_drm_gem_prime_vmap()
240 mtk_gem->pages = kcalloc(npages, sizeof(*mtk_gem->pages), GFP_KERNEL); in mtk_drm_gem_prime_vmap()
241 if (!mtk_gem->pages) { in mtk_drm_gem_prime_vmap()
247 drm_prime_sg_to_page_array(sgt, mtk_gem->pages, npages); in mtk_drm_gem_prime_vmap()
249 mtk_gem->kvaddr = vmap(mtk_gem->pages, npages, VM_MAP, in mtk_drm_gem_prime_vmap()
251 if (!mtk_gem->kvaddr) { in mtk_drm_gem_prime_vmap()
254 kfree(mtk_gem->pages); in mtk_drm_gem_prime_vmap()
261 iosys_map_set_vaddr(map, mtk_gem->kvaddr); in mtk_drm_gem_prime_vmap()
269 struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj); in mtk_drm_gem_prime_vunmap() local
272 if (!mtk_gem->pages) in mtk_drm_gem_prime_vunmap()
276 mtk_gem->kvaddr = NULL; in mtk_drm_gem_prime_vunmap()
277 kfree(mtk_gem->pages); in mtk_drm_gem_prime_vunmap()