Skip to content

Commit 244b8ed

Browse files
Tao Zhoualexdeucher
authored andcommitted
drm/amdgpu: enable RAS poison for VCN 2.6
Configure related settings to enable it. Signed-off-by: Tao Zhou <[email protected]> Signed-off-by: Lijo Lazar <[email protected]> Reviewed-by: Hawking Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent f701acb commit 244b8ed

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

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

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -770,6 +770,33 @@ static void vcn_v2_5_enable_clock_gating(struct amdgpu_device *adev)
770770
}
771771
}
772772

773+
static void vcn_v2_6_enable_ras(struct amdgpu_device *adev, int inst_idx,
774+
bool indirect)
775+
{
776+
uint32_t tmp;
777+
778+
if (adev->ip_versions[UVD_HWIP][0] != IP_VERSION(2, 6, 0))
779+
return;
780+
781+
tmp = VCN_RAS_CNTL__VCPU_VCODEC_REARM_MASK |
782+
VCN_RAS_CNTL__VCPU_VCODEC_IH_EN_MASK |
783+
VCN_RAS_CNTL__VCPU_VCODEC_PMI_EN_MASK |
784+
VCN_RAS_CNTL__VCPU_VCODEC_STALL_EN_MASK;
785+
WREG32_SOC15_DPG_MODE(inst_idx,
786+
SOC15_DPG_MODE_OFFSET(VCN, 0, mmVCN_RAS_CNTL),
787+
tmp, 0, indirect);
788+
789+
tmp = UVD_VCPU_INT_EN__RASCNTL_VCPU_VCODEC_EN_MASK;
790+
WREG32_SOC15_DPG_MODE(inst_idx,
791+
SOC15_DPG_MODE_OFFSET(VCN, 0, mmUVD_VCPU_INT_EN),
792+
tmp, 0, indirect);
793+
794+
tmp = UVD_SYS_INT_EN__RASCNTL_VCPU_VCODEC_EN_MASK;
795+
WREG32_SOC15_DPG_MODE(inst_idx,
796+
SOC15_DPG_MODE_OFFSET(VCN, 0, mmUVD_SYS_INT_EN),
797+
tmp, 0, indirect);
798+
}
799+
773800
static int vcn_v2_5_start_dpg_mode(struct amdgpu_device *adev, int inst_idx, bool indirect)
774801
{
775802
volatile struct amdgpu_fw_shared *fw_shared = adev->vcn.inst[inst_idx].fw_shared.cpu_addr;
@@ -849,6 +876,8 @@ static int vcn_v2_5_start_dpg_mode(struct amdgpu_device *adev, int inst_idx, boo
849876
WREG32_SOC15_DPG_MODE(inst_idx, SOC15_DPG_MODE_OFFSET(
850877
VCN, 0, mmUVD_LMI_CTRL2), 0, 0, indirect);
851878

879+
vcn_v2_6_enable_ras(adev, inst_idx, indirect);
880+
852881
/* unblock VCPU register access */
853882
WREG32_SOC15_DPG_MODE(inst_idx, SOC15_DPG_MODE_OFFSET(
854883
VCN, 0, mmUVD_RB_ARB_CTRL), 0, 0, indirect);

0 commit comments

Comments
 (0)