drm/amdgpu/vcn: fix vcn ring test failure in igt reload test
authorTianci Yin <tianci.yin@amd.com>
Tue, 15 Mar 2022 01:58:09 +0000 (09:58 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Mar 2022 19:01:02 +0000 (15:01 -0400)
[why]
On Renoir, vcn ring test failed on the second time insmod in the reload
test. After investigation, it proves that vcn only can disable dpg under
dpg unpause mode (dpg unpause mode is default for dec only, dpg pause
mode is for dec/enc).

[how]
unpause dpg in dpg stopping procedure.

Reviewed-by: James Zhu <James.Zhu@amd.com>
Signed-off-by: Tianci Yin <tianci.yin@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c

index 8cb2124..7a7f35e 100644 (file)
@@ -1098,8 +1098,10 @@ static int vcn_v2_0_start(struct amdgpu_device *adev)
 
 static int vcn_v2_0_stop_dpg_mode(struct amdgpu_device *adev)
 {
+       struct dpg_pause_state state = {.fw_based = VCN_DPG_STATE__UNPAUSE};
        uint32_t tmp;
 
+       vcn_v2_0_pause_dpg_mode(adev, 0, &state);
        /* Wait for power status to be 1 */
        SOC15_WAIT_ON_RREG(UVD, 0, mmUVD_POWER_STATUS, 1,
                UVD_POWER_STATUS__UVD_POWER_STATUS_MASK);