drm/amdgpu: Modify GC register access from MMIO to RLCG in file soc15.c
authorPeng Ju Zhou <PengJu.Zhou@amd.com>
Thu, 22 Apr 2021 03:25:42 +0000 (11:25 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 21 May 2021 14:32:07 +0000 (10:32 -0400)
In SRIOV environment, KMD should access GC registers
with RLCG if GC indirect access flag enabled.

Signed-off-by: Peng Ju Zhou <PengJu.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/soc15.c

index 75008cc..de85577 100644 (file)
@@ -633,7 +633,9 @@ void soc15_program_register_sequence(struct amdgpu_device *adev,
                if (entry->and_mask == 0xffffffff) {
                        tmp = entry->or_mask;
                } else {
-                       tmp = RREG32(reg);
+                       tmp = (entry->hwip == GC_HWIP) ?
+                               RREG32_SOC15_IP(GC, reg) : RREG32(reg);
+
                        tmp &= ~(entry->and_mask);
                        tmp |= (entry->or_mask & entry->and_mask);
                }
@@ -644,7 +646,8 @@ void soc15_program_register_sequence(struct amdgpu_device *adev,
                        reg == SOC15_REG_OFFSET(GC, 0, mmSH_MEM_CONFIG))
                        WREG32_RLC(reg, tmp);
                else
-                       WREG32(reg, tmp);
+                       (entry->hwip == GC_HWIP) ?
+                               WREG32_SOC15_IP(GC, reg, tmp) : WREG32(reg, tmp);
 
        }