Lines Matching refs:g2d_userptr

380 	struct g2d_cmdlist_userptr *g2d_userptr = obj;  in g2d_userptr_put_dma_addr()  local
389 atomic_dec(&g2d_userptr->refcount); in g2d_userptr_put_dma_addr()
391 if (atomic_read(&g2d_userptr->refcount) > 0) in g2d_userptr_put_dma_addr()
394 if (g2d_userptr->in_pool) in g2d_userptr_put_dma_addr()
398 dma_unmap_sgtable(to_dma_dev(g2d->drm_dev), g2d_userptr->sgt, in g2d_userptr_put_dma_addr()
401 pages = frame_vector_pages(g2d_userptr->vec); in g2d_userptr_put_dma_addr()
405 for (i = 0; i < frame_vector_count(g2d_userptr->vec); i++) in g2d_userptr_put_dma_addr()
408 put_vaddr_frames(g2d_userptr->vec); in g2d_userptr_put_dma_addr()
409 frame_vector_destroy(g2d_userptr->vec); in g2d_userptr_put_dma_addr()
411 if (!g2d_userptr->out_of_list) in g2d_userptr_put_dma_addr()
412 list_del_init(&g2d_userptr->list); in g2d_userptr_put_dma_addr()
414 sg_free_table(g2d_userptr->sgt); in g2d_userptr_put_dma_addr()
415 kfree(g2d_userptr->sgt); in g2d_userptr_put_dma_addr()
416 kfree(g2d_userptr); in g2d_userptr_put_dma_addr()
426 struct g2d_cmdlist_userptr *g2d_userptr; in g2d_userptr_get_dma_addr() local
438 list_for_each_entry(g2d_userptr, &file_priv->userptr_list, list) { in g2d_userptr_get_dma_addr()
439 if (g2d_userptr->userptr == userptr) { in g2d_userptr_get_dma_addr()
444 if (g2d_userptr->size == size) { in g2d_userptr_get_dma_addr()
445 atomic_inc(&g2d_userptr->refcount); in g2d_userptr_get_dma_addr()
446 *obj = g2d_userptr; in g2d_userptr_get_dma_addr()
448 return &g2d_userptr->dma_addr; in g2d_userptr_get_dma_addr()
458 g2d_userptr->out_of_list = true; in g2d_userptr_get_dma_addr()
459 g2d_userptr->in_pool = false; in g2d_userptr_get_dma_addr()
460 list_del_init(&g2d_userptr->list); in g2d_userptr_get_dma_addr()
466 g2d_userptr = kzalloc(sizeof(*g2d_userptr), GFP_KERNEL); in g2d_userptr_get_dma_addr()
467 if (!g2d_userptr) in g2d_userptr_get_dma_addr()
470 atomic_set(&g2d_userptr->refcount, 1); in g2d_userptr_get_dma_addr()
471 g2d_userptr->size = size; in g2d_userptr_get_dma_addr()
477 g2d_userptr->vec = frame_vector_create(npages); in g2d_userptr_get_dma_addr()
478 if (!g2d_userptr->vec) { in g2d_userptr_get_dma_addr()
484 g2d_userptr->vec); in g2d_userptr_get_dma_addr()
493 if (frame_vector_to_pages(g2d_userptr->vec) < 0) { in g2d_userptr_get_dma_addr()
505 frame_vector_pages(g2d_userptr->vec), in g2d_userptr_get_dma_addr()
512 g2d_userptr->sgt = sgt; in g2d_userptr_get_dma_addr()
521 g2d_userptr->dma_addr = sgt->sgl[0].dma_address; in g2d_userptr_get_dma_addr()
522 g2d_userptr->userptr = userptr; in g2d_userptr_get_dma_addr()
524 list_add_tail(&g2d_userptr->list, &file_priv->userptr_list); in g2d_userptr_get_dma_addr()
528 g2d_userptr->in_pool = true; in g2d_userptr_get_dma_addr()
531 *obj = g2d_userptr; in g2d_userptr_get_dma_addr()
533 return &g2d_userptr->dma_addr; in g2d_userptr_get_dma_addr()
542 put_vaddr_frames(g2d_userptr->vec); in g2d_userptr_get_dma_addr()
545 frame_vector_destroy(g2d_userptr->vec); in g2d_userptr_get_dma_addr()
548 kfree(g2d_userptr); in g2d_userptr_get_dma_addr()
556 struct g2d_cmdlist_userptr *g2d_userptr, *n; in g2d_userptr_free_all() local
558 list_for_each_entry_safe(g2d_userptr, n, &file_priv->userptr_list, list) in g2d_userptr_free_all()
559 if (g2d_userptr->in_pool) in g2d_userptr_free_all()
560 g2d_userptr_put_dma_addr(g2d, g2d_userptr, true); in g2d_userptr_free_all()
736 struct drm_exynos_g2d_userptr g2d_userptr; in g2d_map_cmdlist_gem() local
738 if (copy_from_user(&g2d_userptr, (void __user *)handle, in g2d_map_cmdlist_gem()
746 g2d_userptr.size)) { in g2d_map_cmdlist_gem()
752 g2d_userptr.userptr, in g2d_map_cmdlist_gem()
753 g2d_userptr.size, in g2d_map_cmdlist_gem()