Lines Matching refs:cma_obj

61 	struct drm_gem_cma_object *cma_obj;  in __drm_gem_cma_create()  local
68 gem_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL); in __drm_gem_cma_create()
75 cma_obj = container_of(gem_obj, struct drm_gem_cma_object, base); in __drm_gem_cma_create()
81 cma_obj->map_noncoherent = false; in __drm_gem_cma_create()
94 return cma_obj; in __drm_gem_cma_create()
97 kfree(cma_obj); in __drm_gem_cma_create()
116 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_create() local
121 cma_obj = __drm_gem_cma_create(drm, size, false); in drm_gem_cma_create()
122 if (IS_ERR(cma_obj)) in drm_gem_cma_create()
123 return cma_obj; in drm_gem_cma_create()
125 if (cma_obj->map_noncoherent) { in drm_gem_cma_create()
126 cma_obj->vaddr = dma_alloc_noncoherent(drm->dev, size, in drm_gem_cma_create()
127 &cma_obj->paddr, in drm_gem_cma_create()
131 cma_obj->vaddr = dma_alloc_wc(drm->dev, size, &cma_obj->paddr, in drm_gem_cma_create()
134 if (!cma_obj->vaddr) { in drm_gem_cma_create()
141 return cma_obj; in drm_gem_cma_create()
144 drm_gem_object_put(&cma_obj->base); in drm_gem_cma_create()
170 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_create_with_handle() local
174 cma_obj = drm_gem_cma_create(drm, size); in drm_gem_cma_create_with_handle()
175 if (IS_ERR(cma_obj)) in drm_gem_cma_create_with_handle()
176 return cma_obj; in drm_gem_cma_create_with_handle()
178 gem_obj = &cma_obj->base; in drm_gem_cma_create_with_handle()
190 return cma_obj; in drm_gem_cma_create_with_handle()
205 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(gem_obj); in drm_gem_cma_free_object() local
206 struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(cma_obj->vaddr); in drm_gem_cma_free_object()
209 if (cma_obj->vaddr) in drm_gem_cma_free_object()
211 drm_prime_gem_destroy(gem_obj, cma_obj->sgt); in drm_gem_cma_free_object()
212 } else if (cma_obj->vaddr) { in drm_gem_cma_free_object()
213 if (cma_obj->map_noncoherent) in drm_gem_cma_free_object()
214 dma_free_noncoherent(gem_obj->dev->dev, cma_obj->base.size, in drm_gem_cma_free_object()
215 cma_obj->vaddr, cma_obj->paddr, in drm_gem_cma_free_object()
218 dma_free_wc(gem_obj->dev->dev, cma_obj->base.size, in drm_gem_cma_free_object()
219 cma_obj->vaddr, cma_obj->paddr); in drm_gem_cma_free_object()
224 kfree(cma_obj); in drm_gem_cma_free_object()
247 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_dumb_create_internal() local
255 cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, args->size, in drm_gem_cma_dumb_create_internal()
257 return PTR_ERR_OR_ZERO(cma_obj); in drm_gem_cma_dumb_create_internal()
283 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_dumb_create() local
288 cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, args->size, in drm_gem_cma_dumb_create()
290 return PTR_ERR_OR_ZERO(cma_obj); in drm_gem_cma_dumb_create()
323 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_get_unmapped_area() local
362 cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_get_unmapped_area()
366 return cma_obj->vaddr ? (unsigned long)cma_obj->vaddr : -EINVAL; in drm_gem_cma_get_unmapped_area()
383 const struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_print_info() local
385 drm_printf_indent(p, indent, "paddr=%pad\n", &cma_obj->paddr); in drm_gem_cma_print_info()
386 drm_printf_indent(p, indent, "vaddr=%p\n", cma_obj->vaddr); in drm_gem_cma_print_info()
404 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_get_sg_table() local
412 ret = dma_get_sgtable(obj->dev->dev, sgt, cma_obj->vaddr, in drm_gem_cma_get_sg_table()
413 cma_obj->paddr, obj->size); in drm_gem_cma_get_sg_table()
447 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_prime_import_sg_table() local
454 cma_obj = __drm_gem_cma_create(dev, attach->dmabuf->size, true); in drm_gem_cma_prime_import_sg_table()
455 if (IS_ERR(cma_obj)) in drm_gem_cma_prime_import_sg_table()
456 return ERR_CAST(cma_obj); in drm_gem_cma_prime_import_sg_table()
458 cma_obj->paddr = sg_dma_address(sgt->sgl); in drm_gem_cma_prime_import_sg_table()
459 cma_obj->sgt = sgt; in drm_gem_cma_prime_import_sg_table()
461 DRM_DEBUG_PRIME("dma_addr = %pad, size = %zu\n", &cma_obj->paddr, attach->dmabuf->size); in drm_gem_cma_prime_import_sg_table()
463 return &cma_obj->base; in drm_gem_cma_prime_import_sg_table()
485 struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_vmap() local
487 dma_buf_map_set_vaddr(map, cma_obj->vaddr); in drm_gem_cma_vmap()
508 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_mmap() local
519 cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_mmap()
521 if (cma_obj->map_noncoherent) { in drm_gem_cma_mmap()
524 ret = dma_mmap_pages(cma_obj->base.dev->dev, in drm_gem_cma_mmap()
526 virt_to_page(cma_obj->vaddr)); in drm_gem_cma_mmap()
528 ret = dma_mmap_wc(cma_obj->base.dev->dev, vma, cma_obj->vaddr, in drm_gem_cma_mmap()
529 cma_obj->paddr, vma->vm_end - vma->vm_start); in drm_gem_cma_mmap()
563 struct drm_gem_cma_object *cma_obj; in drm_gem_cma_prime_import_sg_table_vmap() local
580 cma_obj = to_drm_gem_cma_obj(obj); in drm_gem_cma_prime_import_sg_table_vmap()
581 cma_obj->vaddr = map.vaddr; in drm_gem_cma_prime_import_sg_table_vmap()