Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: use register distance member instead of hardcode in UVD7/VCE4

This patch updates to use register distance member instead of hardcode
in UVD7/VCE4. They are for the same ASIC.

Signed-off-by: Huang Rui <ray.huang@amd.com>
Tested-by: AnZhong Huang <anzhong.huang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Huang Rui and committed by
Alex Deucher
2fcaca94 228ea7b0

+5 -3
+3 -2
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
··· 1375 1375 pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr); 1376 1376 1377 1377 /* wait for reg writes */ 1378 - data0 = hub->ctx0_ptb_addr_lo32 + vmid * 2; 1378 + data0 = hub->ctx0_ptb_addr_lo32 + vmid * hub->ctx_addr_distance; 1379 1379 data1 = lower_32_bits(pd_addr); 1380 1380 mask = 0xffffffff; 1381 1381 uvd_v7_0_ring_emit_reg_wait(ring, data0, data1, mask); ··· 1417 1417 pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr); 1418 1418 1419 1419 /* wait for reg writes */ 1420 - uvd_v7_0_enc_ring_emit_reg_wait(ring, hub->ctx0_ptb_addr_lo32 + vmid * 2, 1420 + uvd_v7_0_enc_ring_emit_reg_wait(ring, hub->ctx0_ptb_addr_lo32 + 1421 + vmid * hub->ctx_addr_distance, 1421 1422 lower_32_bits(pd_addr), 0xffffffff); 1422 1423 } 1423 1424
+2 -1
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
··· 991 991 pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr); 992 992 993 993 /* wait for reg writes */ 994 - vce_v4_0_emit_reg_wait(ring, hub->ctx0_ptb_addr_lo32 + vmid * 2, 994 + vce_v4_0_emit_reg_wait(ring, hub->ctx0_ptb_addr_lo32 + 995 + vmid * hub->ctx_addr_distance, 995 996 lower_32_bits(pd_addr), 0xffffffff); 996 997 } 997 998