drm/rockchip: fix error sg_dma_addr for iommu case

Fixes: e68e6d1a35 ("drm/rockchip: add dmabuf sync partial to dma_buf_ops")

Change-Id: I7499f049243b1c5bfe88793cd141730a90aef180
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
This commit is contained in:
Jianqun Xu
2021-08-06 14:58:13 +08:00
committed by Tao Huang
parent d148a5eec2
commit 13dbe9c775

View File

@@ -980,15 +980,11 @@ static int rockchip_gem_prime_sgl_sync_range(struct device *dev,
for_each_sg(sgl, sg, nents, i) {
unsigned int sg_offset, sg_left, size = 0;
if (i == 0)
sg_dma_addr = sg_dma_address(sg);
len += sg->length;
if (len <= offset) {
sg_dma_addr += sg->length;
if (len <= offset)
continue;
}
sg_dma_addr = sg_dma_address(sg);
sg_left = len - offset;
sg_offset = sg->length - sg_left;
@@ -1002,7 +998,6 @@ static int rockchip_gem_prime_sgl_sync_range(struct device *dev,
offset += size;
length -= size;
sg_dma_addr += sg->length;
if (length == 0)
break;