From a2e98940eee76535d4a0dc585013e06fb151ffc5 Mon Sep 17 00:00:00 2001 From: Jianqun Xu Date: Mon, 13 Feb 2023 16:33:31 +0800 Subject: [PATCH] Revert "drm/rockchip: gem: add dmabuf sync partial to dma_buf_ops" This reverts commit 64097b127c6c4853026fd839036e613097bccb6f. Change-Id: I18917edcda996538b09da55d999dcb76544fdafb Signed-off-by: Jianqun Xu --- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 22 ------ drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 75 --------------------- drivers/gpu/drm/rockchip/rockchip_drm_gem.h | 9 --- 3 files changed, 106 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 92967fd48363..212191aa8cd2 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -1666,26 +1666,6 @@ static int rockchip_drm_gem_dmabuf_end_cpu_access(struct dma_buf *dma_buf, return rockchip_gem_prime_end_cpu_access(obj, dir); } -static int rockchip_drm_gem_begin_cpu_access_partial( - struct dma_buf *dma_buf, - enum dma_data_direction dir, - unsigned int offset, unsigned int len) -{ - struct drm_gem_object *obj = dma_buf->priv; - - return rockchip_gem_prime_begin_cpu_access_partial(obj, dir, offset, len); -} - -static int rockchip_drm_gem_end_cpu_access_partial( - struct dma_buf *dma_buf, - enum dma_data_direction dir, - unsigned int offset, unsigned int len) -{ - struct drm_gem_object *obj = dma_buf->priv; - - return rockchip_gem_prime_end_cpu_access_partial(obj, dir, offset, len); -} - static const struct dma_buf_ops rockchip_drm_gem_prime_dmabuf_ops = { .cache_sgt_mapping = true, .attach = drm_gem_map_attach, @@ -1699,8 +1679,6 @@ static const struct dma_buf_ops rockchip_drm_gem_prime_dmabuf_ops = { .get_uuid = drm_gem_dmabuf_get_uuid, .begin_cpu_access = rockchip_drm_gem_dmabuf_begin_cpu_access, .end_cpu_access = rockchip_drm_gem_dmabuf_end_cpu_access, - .begin_cpu_access_partial = rockchip_drm_gem_begin_cpu_access_partial, - .end_cpu_access_partial = rockchip_drm_gem_end_cpu_access_partial, }; static struct drm_gem_object *rockchip_drm_gem_prime_import_dev(struct drm_device *dev, diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index df985456b598..48893f5cff42 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -992,78 +992,3 @@ int rockchip_gem_prime_end_cpu_access(struct drm_gem_object *obj, rk_obj->sgt->nents, dir); return 0; } - -static int rockchip_gem_prime_sgl_sync_range(struct device *dev, - struct scatterlist *sgl, unsigned int nents, - unsigned int offset, unsigned int length, - enum dma_data_direction dir, bool for_cpu) -{ - int i; - struct scatterlist *sg; - unsigned int len = 0; - dma_addr_t sg_dma_addr; - - for_each_sg(sgl, sg, nents, i) { - unsigned int sg_offset, sg_left, size = 0; - - len += sg->length; - if (len <= offset) - continue; - - sg_dma_addr = sg_phys(sg); - sg_left = len - offset; - sg_offset = sg->length - sg_left; - - size = (length < sg_left) ? length : sg_left; - if (for_cpu) - dma_sync_single_range_for_cpu(dev, sg_dma_addr, - sg_offset, size, dir); - else - dma_sync_single_range_for_device(dev, sg_dma_addr, - sg_offset, size, dir); - - offset += size; - length -= size; - - if (length == 0) - break; - } - - return 0; -} - -int rockchip_gem_prime_begin_cpu_access_partial(struct drm_gem_object *obj, - enum dma_data_direction dir, - unsigned int offset, - unsigned int len) -{ - struct rockchip_gem_object *rk_obj = to_rockchip_obj(obj); - struct drm_device *drm = obj->dev; - - if (!rk_obj->sgt) - return 0; - - rockchip_gem_prime_sgl_sync_range(drm->dev, rk_obj->sgt->sgl, - rk_obj->sgt->nents, - offset, len, dir, true); - - return 0; -} - -int rockchip_gem_prime_end_cpu_access_partial(struct drm_gem_object *obj, - enum dma_data_direction dir, - unsigned int offset, - unsigned int len) -{ - struct rockchip_gem_object *rk_obj = to_rockchip_obj(obj); - struct drm_device *drm = obj->dev; - - if (!rk_obj->sgt) - return 0; - - rockchip_gem_prime_sgl_sync_range(drm->dev, rk_obj->sgt->sgl, - rk_obj->sgt->nents, - offset, len, dir, false); - - return 0; -} diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.h b/drivers/gpu/drm/rockchip/rockchip_drm_gem.h index 6a1d8e55b35a..34bcb76b20e3 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.h @@ -81,14 +81,5 @@ int rockchip_gem_prime_begin_cpu_access(struct drm_gem_object *obj, int rockchip_gem_prime_end_cpu_access(struct drm_gem_object *obj, enum dma_data_direction dir); -int rockchip_gem_prime_begin_cpu_access_partial(struct drm_gem_object *obj, - enum dma_data_direction dir, - unsigned int offset, - unsigned int len); - -int rockchip_gem_prime_end_cpu_access_partial(struct drm_gem_object *obj, - enum dma_data_direction dir, - unsigned int offset, - unsigned int len); void rockchip_gem_get_ddr_info(void); #endif /* _ROCKCHIP_DRM_GEM_H */