media: common: videobuf2: fix begin_cpu_access and end_cpu_access call back

scatterlist nents would change to 1 after dma_map_sg if iommu enabled.
So invalid or clean should use orig_nents to indicate the scatterlist
true nents if user miss the callback prepare and finish of struct vb2_mem_ops.

Change-Id: Iabb4c140d64e79eb16b93cab0fee488fe4ba4b68
Signed-off-by: Simon Xue <xxm@rock-chips.com>
This commit is contained in:
Simon Xue
2022-06-15 09:01:43 +08:00
committed by Tao Huang
parent f0777fbf8e
commit be0c00efdc

View File

@@ -501,7 +501,7 @@ vb2_cma_sg_dmabuf_ops_begin_cpu_access(struct dma_buf *dbuf,
struct vb2_cma_sg_buf *buf = dbuf->priv;
struct sg_table *sgt = buf->dma_sgt;
dma_sync_sg_for_cpu(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir);
dma_sync_sgtable_for_cpu(buf->dev, sgt, buf->dma_dir);
return 0;
}
@@ -512,7 +512,7 @@ vb2_cma_sg_dmabuf_ops_end_cpu_access(struct dma_buf *dbuf,
struct vb2_cma_sg_buf *buf = dbuf->priv;
struct sg_table *sgt = buf->dma_sgt;
dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir);
dma_sync_sgtable_for_device(buf->dev, sgt, buf->dma_dir);
return 0;
}