Lines Matching refs:cma_obj
58 struct drm_gem_cma_object *cma_obj; in __drm_gem_cma_create() local
65 gem_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL); in __drm_gem_cma_create()
68 cma_obj = container_of(gem_obj, struct drm_gem_cma_object, base); in __drm_gem_cma_create()
80 return cma_obj; in __drm_gem_cma_create()
83 kfree(cma_obj); in __drm_gem_cma_create()
103 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_create() local
108 cma_obj = __drm_gem_cma_create(drm, size); in drm_gem_cma_create()
109 if (IS_ERR(cma_obj)) in drm_gem_cma_create()
110 return cma_obj; in drm_gem_cma_create()
112 cma_obj->vaddr = dma_alloc_wc(drm->dev, size, &cma_obj->paddr, in drm_gem_cma_create()
114 if (!cma_obj->vaddr) { in drm_gem_cma_create()
121 return cma_obj; in drm_gem_cma_create()
124 drm_gem_object_put_unlocked(&cma_obj->base); in drm_gem_cma_create()
150 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_create_with_handle() local
154 cma_obj = drm_gem_cma_create(drm, size); in drm_gem_cma_create_with_handle()
155 if (IS_ERR(cma_obj)) in drm_gem_cma_create_with_handle()
156 return cma_obj; in drm_gem_cma_create_with_handle()
158 gem_obj = &cma_obj->base; in drm_gem_cma_create_with_handle()
170 return cma_obj; in drm_gem_cma_create_with_handle()
184 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_free_object() local
186 cma_obj = to_drm_gem_cma_obj(gem_obj); in drm_gem_cma_free_object()
188 if (cma_obj->vaddr) { in drm_gem_cma_free_object()
189 dma_free_wc(gem_obj->dev->dev, cma_obj->base.size, in drm_gem_cma_free_object()
190 cma_obj->vaddr, cma_obj->paddr); in drm_gem_cma_free_object()
192 drm_prime_gem_destroy(gem_obj, cma_obj->sgt); in drm_gem_cma_free_object()
197 kfree(cma_obj); in drm_gem_cma_free_object()
220 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_dumb_create_internal() local
228 cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, args->size, in drm_gem_cma_dumb_create_internal()
230 return PTR_ERR_OR_ZERO(cma_obj); in drm_gem_cma_dumb_create_internal()
256 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_dumb_create() local
261 cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, args->size, in drm_gem_cma_dumb_create()
263 return PTR_ERR_OR_ZERO(cma_obj); in drm_gem_cma_dumb_create()
273 static int drm_gem_cma_mmap_obj(struct drm_gem_cma_object *cma_obj, in drm_gem_cma_mmap_obj() argument
286 ret = dma_mmap_wc(cma_obj->base.dev->dev, vma, cma_obj->vaddr, in drm_gem_cma_mmap_obj()
287 cma_obj->paddr, vma->vm_end - vma->vm_start); in drm_gem_cma_mmap_obj()
314 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_mmap() local
323 cma_obj = to_drm_gem_cma_obj(gem_obj); in drm_gem_cma_mmap()
325 return drm_gem_cma_mmap_obj(cma_obj, vma); in drm_gem_cma_mmap()
352 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_get_unmapped_area() local
391 cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_get_unmapped_area()
395 return cma_obj->vaddr ? (unsigned long)cma_obj->vaddr : -EINVAL; in drm_gem_cma_get_unmapped_area()
412 const struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_print_info() local
414 drm_printf_indent(p, indent, "paddr=%pad\n", &cma_obj->paddr); in drm_gem_cma_print_info()
415 drm_printf_indent(p, indent, "vaddr=%p\n", cma_obj->vaddr); in drm_gem_cma_print_info()
433 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_get_sg_table() local
441 ret = dma_get_sgtable(obj->dev->dev, sgt, cma_obj->vaddr, in drm_gem_cma_prime_get_sg_table()
442 cma_obj->paddr, obj->size); in drm_gem_cma_prime_get_sg_table()
476 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_prime_import_sg_table() local
500 cma_obj = __drm_gem_cma_create(dev, attach->dmabuf->size); in drm_gem_cma_prime_import_sg_table()
501 if (IS_ERR(cma_obj)) in drm_gem_cma_prime_import_sg_table()
502 return ERR_CAST(cma_obj); in drm_gem_cma_prime_import_sg_table()
504 cma_obj->paddr = sg_dma_address(sgt->sgl); in drm_gem_cma_prime_import_sg_table()
505 cma_obj->sgt = sgt; in drm_gem_cma_prime_import_sg_table()
507 DRM_DEBUG_PRIME("dma_addr = %pad, size = %zu\n", &cma_obj->paddr, attach->dmabuf->size); in drm_gem_cma_prime_import_sg_table()
509 return &cma_obj->base; in drm_gem_cma_prime_import_sg_table()
528 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_prime_mmap() local
535 cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_mmap()
536 return drm_gem_cma_mmap_obj(cma_obj, vma); in drm_gem_cma_prime_mmap()
556 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_vmap() local
558 return cma_obj->vaddr; in drm_gem_cma_prime_vmap()