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