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 VCN1/JEPG1

This patch updates to use register distance member instead of
hardcode in VCN1/JEPG1. 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
228ea7b0 af6c5c4f

+4 -3
+1 -1
drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c
··· 377 377 pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr); 378 378 379 379 /* wait for register write */ 380 - data0 = hub->ctx0_ptb_addr_lo32 + vmid * 2; 380 + data0 = hub->ctx0_ptb_addr_lo32 + vmid * hub->ctx_addr_distance; 381 381 data1 = lower_32_bits(pd_addr); 382 382 mask = 0xffffffff; 383 383 jpeg_v1_0_decode_ring_emit_reg_wait(ring, data0, data1, mask);
+3 -2
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
··· 1539 1539 pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr); 1540 1540 1541 1541 /* wait for register write */ 1542 - data0 = hub->ctx0_ptb_addr_lo32 + vmid * 2; 1542 + data0 = hub->ctx0_ptb_addr_lo32 + vmid * hub->ctx_addr_distance; 1543 1543 data1 = lower_32_bits(pd_addr); 1544 1544 mask = 0xffffffff; 1545 1545 vcn_v1_0_dec_ring_emit_reg_wait(ring, data0, data1, mask); ··· 1679 1679 pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr); 1680 1680 1681 1681 /* wait for reg writes */ 1682 - vcn_v1_0_enc_ring_emit_reg_wait(ring, hub->ctx0_ptb_addr_lo32 + vmid * 2, 1682 + vcn_v1_0_enc_ring_emit_reg_wait(ring, hub->ctx0_ptb_addr_lo32 + 1683 + vmid * hub->ctx_addr_distance, 1683 1684 lower_32_bits(pd_addr), 0xffffffff); 1684 1685 } 1685 1686