Lines Matching refs:cma_obj
58 struct drm_gem_cma_object *cma_obj; in __drm_gem_cma_create() local
62 cma_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL); in __drm_gem_cma_create()
63 if (!cma_obj) in __drm_gem_cma_create()
66 gem_obj = &cma_obj->base; in __drm_gem_cma_create()
78 return cma_obj; in __drm_gem_cma_create()
81 kfree(cma_obj); in __drm_gem_cma_create()
101 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_create() local
106 cma_obj = __drm_gem_cma_create(drm, size); in drm_gem_cma_create()
107 if (IS_ERR(cma_obj)) in drm_gem_cma_create()
108 return cma_obj; in drm_gem_cma_create()
110 cma_obj->vaddr = dma_alloc_writecombine(drm->dev, size, in drm_gem_cma_create()
111 &cma_obj->paddr, GFP_KERNEL | __GFP_NOWARN); in drm_gem_cma_create()
112 if (!cma_obj->vaddr) { in drm_gem_cma_create()
119 return cma_obj; in drm_gem_cma_create()
122 drm_gem_cma_free_object(&cma_obj->base); in drm_gem_cma_create()
148 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_create_with_handle() local
152 cma_obj = drm_gem_cma_create(drm, size); in drm_gem_cma_create_with_handle()
153 if (IS_ERR(cma_obj)) in drm_gem_cma_create_with_handle()
154 return cma_obj; in drm_gem_cma_create_with_handle()
156 gem_obj = &cma_obj->base; in drm_gem_cma_create_with_handle()
169 return cma_obj; in drm_gem_cma_create_with_handle()
188 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_free_object() local
190 cma_obj = to_drm_gem_cma_obj(gem_obj); in drm_gem_cma_free_object()
192 if (cma_obj->vaddr) { in drm_gem_cma_free_object()
193 dma_free_writecombine(gem_obj->dev->dev, cma_obj->base.size, in drm_gem_cma_free_object()
194 cma_obj->vaddr, cma_obj->paddr); in drm_gem_cma_free_object()
196 drm_prime_gem_destroy(gem_obj, cma_obj->sgt); in drm_gem_cma_free_object()
201 kfree(cma_obj); in drm_gem_cma_free_object()
224 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_dumb_create_internal() local
232 cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, args->size, in drm_gem_cma_dumb_create_internal()
234 return PTR_ERR_OR_ZERO(cma_obj); in drm_gem_cma_dumb_create_internal()
260 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_dumb_create() local
265 cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, args->size, in drm_gem_cma_dumb_create()
267 return PTR_ERR_OR_ZERO(cma_obj); in drm_gem_cma_dumb_create()
312 static int drm_gem_cma_mmap_obj(struct drm_gem_cma_object *cma_obj, in drm_gem_cma_mmap_obj() argument
325 ret = dma_mmap_writecombine(cma_obj->base.dev->dev, vma, in drm_gem_cma_mmap_obj()
326 cma_obj->vaddr, cma_obj->paddr, in drm_gem_cma_mmap_obj()
351 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_mmap() local
360 cma_obj = to_drm_gem_cma_obj(gem_obj); in drm_gem_cma_mmap()
362 return drm_gem_cma_mmap_obj(cma_obj, vma); in drm_gem_cma_mmap()
375 void drm_gem_cma_describe(struct drm_gem_cma_object *cma_obj, in drm_gem_cma_describe() argument
378 struct drm_gem_object *obj = &cma_obj->base; in drm_gem_cma_describe()
385 off, &cma_obj->paddr, cma_obj->vaddr, obj->size); in drm_gem_cma_describe()
406 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_get_sg_table() local
414 ret = dma_get_sgtable(obj->dev->dev, sgt, cma_obj->vaddr, in drm_gem_cma_prime_get_sg_table()
415 cma_obj->paddr, obj->size); in drm_gem_cma_prime_get_sg_table()
449 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_prime_import_sg_table() local
455 cma_obj = __drm_gem_cma_create(dev, attach->dmabuf->size); in drm_gem_cma_prime_import_sg_table()
456 if (IS_ERR(cma_obj)) in drm_gem_cma_prime_import_sg_table()
457 return ERR_CAST(cma_obj); in drm_gem_cma_prime_import_sg_table()
459 cma_obj->paddr = sg_dma_address(sgt->sgl); in drm_gem_cma_prime_import_sg_table()
460 cma_obj->sgt = sgt; in drm_gem_cma_prime_import_sg_table()
462 DRM_DEBUG_PRIME("dma_addr = %pad, size = %zu\n", &cma_obj->paddr, attach->dmabuf->size); in drm_gem_cma_prime_import_sg_table()
464 return &cma_obj->base; in drm_gem_cma_prime_import_sg_table()
483 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_prime_mmap() local
490 cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_mmap()
491 return drm_gem_cma_mmap_obj(cma_obj, vma); in drm_gem_cma_prime_mmap()
511 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_vmap() local
513 return cma_obj->vaddr; in drm_gem_cma_prime_vmap()