drm/amdgpu: Skip access SDMA0_F32_CNTL in sdma_v6_0_enable under SRIOV
authorYifan Zha <Yifan.Zha@amd.com>
Tue, 25 Oct 2022 06:46:11 +0000 (14:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 1 Nov 2022 15:45:50 +0000 (11:45 -0400)
[Why]
SDMA0_F32_CNTL is a PF_only regitser which will be blocked by L1.
RLCG will not program the register as well.

[How]
Skip to program SDMA0_F32_CNTL under SRIOV VF.

Signed-off-by: Yifan Zha <Yifan.Zha@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c

index d9ae69be5ea4ad54c6ee8d6c14ff799c5971cb98..049c26a45d8511101faf7e9217674c2bbc228ecc 100644 (file)
@@ -455,6 +455,9 @@ static void sdma_v6_0_enable(struct amdgpu_device *adev, bool enable)
                sdma_v6_0_rlc_stop(adev);
        }
 
+       if (amdgpu_sriov_vf(adev))
+               return;
+
        for (i = 0; i < adev->sdma.num_instances; i++) {
                f32_cntl = RREG32_SOC15_IP(GC, sdma_v6_0_get_reg_offset(adev, i, regSDMA0_F32_CNTL));
                f32_cntl = REG_SET_FIELD(f32_cntl, SDMA0_F32_CNTL, HALT, enable ? 0 : 1);