k1: v2d: fix the issue of overflow when Dmabuf physical address is greater than 4G

Change-Id: I2234427baab3bd2279e4a391eb2fdf164b908c6a
This commit is contained in:
lilijun
2025-04-25 14:56:12 +08:00
committed by 张猛
parent 223fc2a2d8
commit d233ddfe28

View File

@@ -99,8 +99,8 @@ static void __write_tbu_table(struct v2d_iommu_res *res, struct tbu_instance *tb
mask = (res->page_size == 4096) ? 0xFFFFFFFFFFFFF000 : 0xFFFFFFFFFFFF0000;
ttb_entry = tbu->ttb_va + (iova - tbu->va_base) / res->page_size;
while (size != 0) {
paddr = paddr & 0xFFFFFFFF;
val = ((paddr & mask) >> TTB_ENTRY_SHIFT) & 0x1FFFFF;
paddr = paddr & 0x3FFFFFFFF;
val = ((paddr & mask) >> TTB_ENTRY_SHIFT) & 0x3FFFFF;
*ttb_entry = val;
size -= res->page_size;
ttb_entry++;