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()
317 static int drm_gem_cma_mmap_obj(struct drm_gem_cma_object *cma_obj, in drm_gem_cma_mmap_obj() argument
330 ret = dma_mmap_writecombine(cma_obj->base.dev->dev, vma, in drm_gem_cma_mmap_obj()
331 cma_obj->vaddr, cma_obj->paddr, in drm_gem_cma_mmap_obj()
356 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_mmap() local
365 cma_obj = to_drm_gem_cma_obj(gem_obj); in drm_gem_cma_mmap()
367 return drm_gem_cma_mmap_obj(cma_obj, vma); in drm_gem_cma_mmap()
380 void drm_gem_cma_describe(struct drm_gem_cma_object *cma_obj, in drm_gem_cma_describe() argument
383 struct drm_gem_object *obj = &cma_obj->base; in drm_gem_cma_describe()
393 off, &cma_obj->paddr, cma_obj->vaddr, obj->size); in drm_gem_cma_describe()
414 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_get_sg_table() local
422 ret = dma_get_sgtable(obj->dev->dev, sgt, cma_obj->vaddr, in drm_gem_cma_prime_get_sg_table()
423 cma_obj->paddr, obj->size); in drm_gem_cma_prime_get_sg_table()
457 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_prime_import_sg_table() local
463 cma_obj = __drm_gem_cma_create(dev, attach->dmabuf->size); in drm_gem_cma_prime_import_sg_table()
464 if (IS_ERR(cma_obj)) in drm_gem_cma_prime_import_sg_table()
465 return ERR_CAST(cma_obj); in drm_gem_cma_prime_import_sg_table()
467 cma_obj->paddr = sg_dma_address(sgt->sgl); in drm_gem_cma_prime_import_sg_table()
468 cma_obj->sgt = sgt; in drm_gem_cma_prime_import_sg_table()
470 DRM_DEBUG_PRIME("dma_addr = %pad, size = %zu\n", &cma_obj->paddr, attach->dmabuf->size); in drm_gem_cma_prime_import_sg_table()
472 return &cma_obj->base; in drm_gem_cma_prime_import_sg_table()
491 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_prime_mmap() local
501 cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_mmap()
502 return drm_gem_cma_mmap_obj(cma_obj, vma); in drm_gem_cma_prime_mmap()
522 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_vmap() local
524 return cma_obj->vaddr; in drm_gem_cma_prime_vmap()