drm: rockchip: use common helper for a scatterlist contiguity check
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>
This commit is contained in:
parent
34a4e66faf
commit
6a8f15c62c
|
@ -460,23 +460,6 @@ struct sg_table *rockchip_gem_prime_get_sg_table(struct drm_gem_object *obj)
|
||||||
return sgt;
|
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
|
static int
|
||||||
rockchip_gem_iommu_map_sg(struct drm_device *drm,
|
rockchip_gem_iommu_map_sg(struct drm_device *drm,
|
||||||
struct dma_buf_attachment *attach,
|
struct dma_buf_attachment *attach,
|
||||||
|
@ -498,7 +481,7 @@ rockchip_gem_dma_map_sg(struct drm_device *drm,
|
||||||
if (!count)
|
if (!count)
|
||||||
return -EINVAL;
|
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");
|
DRM_ERROR("failed to map sg_table to contiguous linear address.\n");
|
||||||
dma_unmap_sg(drm->dev, sg->sgl, sg->nents,
|
dma_unmap_sg(drm->dev, sg->sgl, sg->nents,
|
||||||
DMA_BIDIRECTIONAL);
|
DMA_BIDIRECTIONAL);
|
||||||
|
|
Loading…
Reference in New Issue