drm/amd/amdgpu: Avoid writing GMC registers under sriov in gmc9
authorYuBiao Wang <YuBiao.Wang@amd.com>
Thu, 4 Nov 2021 02:50:41 +0000 (10:50 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 5 Nov 2021 18:11:20 +0000 (14:11 -0400)
[Why]
For Vega10, disabling gart of gfxhub could mess up KIQ and PSP
under sriov mode, and lead to DMAR on host side.

[How]
Skip writing GMC registers under sriov.

Signed-off-by: YuBiao Wang <YuBiao.Wang@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c

index bda1542..480e418 100644 (file)
@@ -348,6 +348,10 @@ static void gfxhub_v1_0_gart_disable(struct amdgpu_device *adev)
                WREG32_SOC15_OFFSET(GC, 0, mmVM_CONTEXT0_CNTL,
                                    i * hub->ctx_distance, 0);
 
+       if (amdgpu_sriov_vf(adev))
+               /* Avoid write to GMC registers */
+               return;
+
        /* Setup TLB control */
        tmp = RREG32_SOC15(GC, 0, mmMC_VM_MX_L1_TLB_CNTL);
        tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL, ENABLE_L1_TLB, 0);