drm: rockchip: use common helper for a scatterlist contiguity check
authorMarek Szyprowski <m.szyprowski@samsung.com>
Thu, 30 Apr 2020 12:02:47 +0000 (14:02 +0200)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Thu, 10 Sep 2020 06:18:35 +0000 (08:18 +0200)
Use common helper for checking the contiguity of the imported dma-buf.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
drivers/gpu/drm/rockchip/rockchip_drm_gem.c

index b9275ba..2970e53 100644 (file)
@@ -460,23 +460,6 @@ struct sg_table *rockchip_gem_prime_get_sg_table(struct drm_gem_object *obj)
        return sgt;
 }
 
-static unsigned long rockchip_sg_get_contiguous_size(struct sg_table *sgt,
-                                                    int count)
-{
-       struct scatterlist *s;
-       dma_addr_t expected = sg_dma_address(sgt->sgl);
-       unsigned int i;
-       unsigned long size = 0;
-
-       for_each_sg(sgt->sgl, s, count, i) {
-               if (sg_dma_address(s) != expected)
-                       break;
-               expected = sg_dma_address(s) + sg_dma_len(s);
-               size += sg_dma_len(s);
-       }
-       return size;
-}
-
 static int
 rockchip_gem_iommu_map_sg(struct drm_device *drm,
                          struct dma_buf_attachment *attach,
@@ -498,7 +481,7 @@ rockchip_gem_dma_map_sg(struct drm_device *drm,
        if (!count)
                return -EINVAL;
 
-       if (rockchip_sg_get_contiguous_size(sg, count) < attach->dmabuf->size) {
+       if (drm_prime_get_contiguous_size(sg) < attach->dmabuf->size) {
                DRM_ERROR("failed to map sg_table to contiguous linear address.\n");
                dma_unmap_sg(drm->dev, sg->sgl, sg->nents,
                             DMA_BIDIRECTIONAL);