]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu/gfx11: enter safe mode before touching CP_INT_CNTL
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 12 Jul 2024 19:36:19 +0000 (15:36 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Oct 2024 10:00:37 +0000 (12:00 +0200)
[ Upstream commit b5be054c585110b2c5c1b180136800e8c41c7bb4 ]

Need to enter safe mode before touching GC MMIO.

Acked-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c

index 4ba8eb45ac1748ab6a23660ba19051a7c3fdfcbd..0bcdcb2101577f60e2996afa918fd713c6c3a909 100644 (file)
@@ -4497,6 +4497,8 @@ static int gfx_v11_0_soft_reset(void *handle)
        int r, i, j, k;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+       gfx_v11_0_set_safe_mode(adev, 0);
+
        tmp = RREG32_SOC15(GC, 0, regCP_INT_CNTL);
        tmp = REG_SET_FIELD(tmp, CP_INT_CNTL, CMP_BUSY_INT_ENABLE, 0);
        tmp = REG_SET_FIELD(tmp, CP_INT_CNTL, CNTX_BUSY_INT_ENABLE, 0);
@@ -4504,8 +4506,6 @@ static int gfx_v11_0_soft_reset(void *handle)
        tmp = REG_SET_FIELD(tmp, CP_INT_CNTL, GFX_IDLE_INT_ENABLE, 0);
        WREG32_SOC15(GC, 0, regCP_INT_CNTL, tmp);
 
-       gfx_v11_0_set_safe_mode(adev, 0);
-
        mutex_lock(&adev->srbm_mutex);
        for (i = 0; i < adev->gfx.mec.num_mec; ++i) {
                for (j = 0; j < adev->gfx.mec.num_queue_per_pipe; j++) {