Skip to content

Commit 46e1519

Browse files
Sonny Jiangalexdeucher
authored andcommitted
drm/amdgpu: VCN v5_0_1 to prevent FW checking RB during DPG pause
Add a protection to ensure programming are all complete prior VCPU starting. This is a WA for an unintended VCPU running. Signed-off-by: Sonny Jiang <[email protected]> Acked-by: Leo Liu <[email protected]> Reviewed-by: Ruijing Dong <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit c29521b) Cc: [email protected]
1 parent caade9d commit 46e1519

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,9 @@ static int vcn_v5_0_1_start_dpg_mode(struct amdgpu_vcn_inst *vinst,
669669
if (indirect)
670670
amdgpu_vcn_psp_update_sram(adev, inst_idx, AMDGPU_UCODE_ID_VCN0_RAM);
671671

672+
/* resetting ring, fw should not check RB ring */
673+
fw_shared->sq.queue_mode |= FW_QUEUE_RING_RESET;
674+
672675
/* Pause dpg */
673676
vcn_v5_0_1_pause_dpg_mode(vinst, &state);
674677

@@ -681,7 +684,7 @@ static int vcn_v5_0_1_start_dpg_mode(struct amdgpu_vcn_inst *vinst,
681684
tmp = RREG32_SOC15(VCN, vcn_inst, regVCN_RB_ENABLE);
682685
tmp &= ~(VCN_RB_ENABLE__RB1_EN_MASK);
683686
WREG32_SOC15(VCN, vcn_inst, regVCN_RB_ENABLE, tmp);
684-
fw_shared->sq.queue_mode |= FW_QUEUE_RING_RESET;
687+
685688
WREG32_SOC15(VCN, vcn_inst, regUVD_RB_RPTR, 0);
686689
WREG32_SOC15(VCN, vcn_inst, regUVD_RB_WPTR, 0);
687690

@@ -692,6 +695,7 @@ static int vcn_v5_0_1_start_dpg_mode(struct amdgpu_vcn_inst *vinst,
692695
tmp = RREG32_SOC15(VCN, vcn_inst, regVCN_RB_ENABLE);
693696
tmp |= VCN_RB_ENABLE__RB1_EN_MASK;
694697
WREG32_SOC15(VCN, vcn_inst, regVCN_RB_ENABLE, tmp);
698+
/* resetting done, fw can check RB ring */
695699
fw_shared->sq.queue_mode &= ~(FW_QUEUE_RING_RESET | FW_QUEUE_DPG_HOLD_OFF);
696700

697701
WREG32_SOC15(VCN, vcn_inst, regVCN_RB1_DB_CTRL,

0 commit comments

Comments
 (0)