From 42256c1a8f6b612aeee9b456fe605ef3570dd6ae Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Wed, 26 May 2021 09:17:33 +0800 Subject: [PATCH] drm/rockchip: gem: fix dma_free_attrs() parameter error Signed-off-by: Sandy Huang Change-Id: I84204ef5348d3429aa104c6e8a307458d1a88504 --- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 13 ++++++------- drivers/gpu/drm/rockchip/rockchip_drm_gem.h | 1 - 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index fd98fc2443c1..aa2ab2b97c27 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -258,7 +258,7 @@ static int rockchip_gem_alloc_dma(struct rockchip_gem_object *rk_obj, rk_obj->dma_attrs |= DMA_ATTR_NO_KERNEL_MAPPING; rk_obj->kvaddr = dma_alloc_attrs(drm->dev, obj->size, - &rk_obj->dma_handle, GFP_KERNEL, + &rk_obj->dma_addr, GFP_KERNEL, rk_obj->dma_attrs); if (!rk_obj->kvaddr) { DRM_ERROR("failed to allocate %zu byte dma buffer", obj->size); @@ -272,7 +272,7 @@ static int rockchip_gem_alloc_dma(struct rockchip_gem_object *rk_obj, } ret = dma_get_sgtable_attrs(drm->dev, sgt, rk_obj->kvaddr, - rk_obj->dma_handle, obj->size, + rk_obj->dma_addr, obj->size, rk_obj->dma_attrs); if (ret) { DRM_ERROR("failed to allocate sgt, %d\n", ret); @@ -352,7 +352,7 @@ static int rockchip_gem_alloc_secure(struct rockchip_gem_object *rk_obj) return -ENOMEM; } - rk_obj->dma_handle = paddr; + rk_obj->dma_addr = paddr; rk_obj->num_pages = rk_obj->base.size >> PAGE_SHIFT; rk_obj->pages = drm_calloc_large(rk_obj->num_pages, @@ -396,7 +396,7 @@ static void rockchip_gem_free_secure(struct rockchip_gem_object *rk_obj) drm_free_large(rk_obj->pages); sg_free_table(rk_obj->sgt); kfree(rk_obj->sgt); - gen_pool_free(private->secure_buffer_pool, rk_obj->dma_handle, + gen_pool_free(private->secure_buffer_pool, rk_obj->dma_addr, rk_obj->base.size); } @@ -449,8 +449,7 @@ static int rockchip_gem_alloc_buf(struct rockchip_gem_object *rk_obj, if (ret < 0) goto err_free; } else { - WARN_ON(!rk_obj->dma_handle); - rk_obj->dma_addr = rk_obj->dma_handle; + WARN_ON(!rk_obj->dma_addr); } return 0; @@ -477,7 +476,7 @@ static void rockchip_gem_free_dma(struct rockchip_gem_object *rk_obj) sg_free_table(rk_obj->sgt); kfree(rk_obj->sgt); dma_free_attrs(drm->dev, obj->size, rk_obj->kvaddr, - rk_obj->dma_handle, rk_obj->dma_attrs); + rk_obj->dma_addr, rk_obj->dma_attrs); } static void rockchip_gem_free_buf(struct rockchip_gem_object *rk_obj) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.h b/drivers/gpu/drm/rockchip/rockchip_drm_gem.h index 2b299b848465..7469cbe62922 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.h @@ -31,7 +31,6 @@ struct rockchip_gem_object { void *kvaddr; void *cookie; dma_addr_t dma_addr; - dma_addr_t dma_handle; /* Used when IOMMU is disabled */ unsigned long dma_attrs;