drm/amdgpu: Stop clearing kiq position during fini
authorleiyaoyao <yaoyao.lei@amd.com>
Mon, 27 Feb 2023 05:24:03 +0000 (13:24 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 6 Mar 2023 20:14:14 +0000 (15:14 -0500)
Do not clear kiq position in RLC_CP_SCHEDULER so that CP could perform
IDLE-SAVE after VF fini.
Otherwise it could cause GFX hang if another Win guest is rendering.

Signed-off-by: leiyaoyao <yaoyao.lei@amd.com>
Acked-by: ZhenGuo Yin <zhenguo.yin@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c

index 6983acc..073f5f2 100644 (file)
@@ -7285,17 +7285,9 @@ static int gfx_v10_0_hw_fini(void *handle)
 
        if (amdgpu_sriov_vf(adev)) {
                gfx_v10_0_cp_gfx_enable(adev, false);
-               /* Program KIQ position of RLC_CP_SCHEDULERS during destroy */
-               if (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(10, 3, 0)) {
-                       tmp = RREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS_Sienna_Cichlid);
-                       tmp &= 0xffffff00;
-                       WREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS_Sienna_Cichlid, tmp);
-               } else {
-                       tmp = RREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS);
-                       tmp &= 0xffffff00;
-                       WREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS, tmp);
-               }
-
+               /* Remove the steps of clearing KIQ position.
+                * It causes GFX hang when another Win guest is rendering.
+                */
                return 0;
        }
        gfx_v10_0_cp_enable(adev, false);