drm/amdgpu: use register distance member instead of hardcode in VCN2/JEPG2
authorHuang Rui <ray.huang@amd.com>
Wed, 1 Jul 2020 07:46:59 +0000 (15:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 8 Jul 2020 13:03:32 +0000 (09:03 -0400)
This patch updates to use register distance member instead of hardcode
in VCN2/JEPG2. 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>
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c

index c5f49129a3009a881cc6f643129aae9cd4a402b8..94caf5204c8bd409ae66d09a63b8edf6eeb9a42b 100644 (file)
@@ -629,7 +629,7 @@ void jpeg_v2_0_dec_ring_emit_vm_flush(struct amdgpu_ring *ring,
        pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr);
 
        /* wait for register write */
-       data0 = hub->ctx0_ptb_addr_lo32 + vmid * 2;
+       data0 = hub->ctx0_ptb_addr_lo32 + vmid * hub->ctx_addr_distance;
        data1 = lower_32_bits(pd_addr);
        mask = 0xffffffff;
        jpeg_v2_0_dec_ring_emit_reg_wait(ring, data0, data1, mask);
index c0e4133a6dd5b6d2271cec8b6b8a43af4b1e4892..23a9eb5b2c8af01622ed62be3604fb2470ec2775 100644 (file)
@@ -1505,7 +1505,7 @@ void vcn_v2_0_dec_ring_emit_vm_flush(struct amdgpu_ring *ring,
        pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr);
 
        /* wait for register write */
-       data0 = hub->ctx0_ptb_addr_lo32 + vmid * 2;
+       data0 = hub->ctx0_ptb_addr_lo32 + vmid * hub->ctx_addr_distance;
        data1 = lower_32_bits(pd_addr);
        mask = 0xffffffff;
        vcn_v2_0_dec_ring_emit_reg_wait(ring, data0, data1, mask);
@@ -1660,7 +1660,8 @@ void vcn_v2_0_enc_ring_emit_vm_flush(struct amdgpu_ring *ring,
        pd_addr = amdgpu_gmc_emit_flush_gpu_tlb(ring, vmid, pd_addr);
 
        /* wait for reg writes */
-       vcn_v2_0_enc_ring_emit_reg_wait(ring, hub->ctx0_ptb_addr_lo32 + vmid * 2,
+       vcn_v2_0_enc_ring_emit_reg_wait(ring, hub->ctx0_ptb_addr_lo32 +
+                                       vmid * hub->ctx_addr_distance,
                                        lower_32_bits(pd_addr), 0xffffffff);
 }