|
Takashi Iwai |
57f36e |
From dbd1003d1252db5973dddf20b24bb0106ac52aa2 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
57f36e |
From: Changfeng <Changfeng.Zhu@amd.com>
|
|
Takashi Iwai |
57f36e |
Date: Fri, 14 May 2021 15:28:25 +0800
|
|
Takashi Iwai |
57f36e |
Subject: [PATCH] drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang
|
|
Takashi Iwai |
57f36e |
Git-commit: dbd1003d1252db5973dddf20b24bb0106ac52aa2
|
|
Takashi Iwai |
57f36e |
Patch-mainline: v5.13-rc3
|
|
Takashi Iwai |
57f36e |
References: git-fixes
|
|
Takashi Iwai |
57f36e |
|
|
Takashi Iwai |
57f36e |
There is problem with 3DCGCG firmware and it will cause compute test
|
|
Takashi Iwai |
57f36e |
hang on picasso/raven1. It needs to disable 3DCGCG in driver to avoid
|
|
Takashi Iwai |
57f36e |
compute hang.
|
|
Takashi Iwai |
57f36e |
|
|
Takashi Iwai |
57f36e |
Signed-off-by: Changfeng <Changfeng.Zhu@amd.com>
|
|
Takashi Iwai |
57f36e |
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
|
|
Takashi Iwai |
57f36e |
Reviewed-by: Huang Rui <ray.huang@amd.com>
|
|
Takashi Iwai |
57f36e |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
|
Takashi Iwai |
57f36e |
Cc: stable@vger.kernel.org
|
|
Takashi Iwai |
57f36e |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
57f36e |
|
|
Takashi Iwai |
57f36e |
---
|
|
Takashi Iwai |
57f36e |
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 10 +++++++---
|
|
Takashi Iwai |
57f36e |
drivers/gpu/drm/amd/amdgpu/soc15.c | 2 --
|
|
Takashi Iwai |
57f36e |
2 files changed, 7 insertions(+), 5 deletions(-)
|
|
Takashi Iwai |
57f36e |
|
|
Takashi Iwai |
57f36e |
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
|
|
Takashi Iwai |
57f36e |
index a078a38c2cee..516467e962b7 100644
|
|
Takashi Iwai |
57f36e |
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
|
|
Takashi Iwai |
57f36e |
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
|
|
Takashi Iwai |
57f36e |
@@ -4943,7 +4943,7 @@ static void gfx_v9_0_update_3d_clock_gating(struct amdgpu_device *adev,
|
|
Takashi Iwai |
57f36e |
amdgpu_gfx_rlc_enter_safe_mode(adev);
|
|
Takashi Iwai |
57f36e |
|
|
Takashi Iwai |
57f36e |
/* Enable 3D CGCG/CGLS */
|
|
Takashi Iwai |
57f36e |
- if (enable && (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGCG)) {
|
|
Takashi Iwai |
57f36e |
+ if (enable) {
|
|
Takashi Iwai |
57f36e |
/* write cmd to clear cgcg/cgls ov */
|
|
Takashi Iwai |
57f36e |
def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
|
|
Takashi Iwai |
57f36e |
/* unset CGCG override */
|
|
Takashi Iwai |
57f36e |
@@ -4955,8 +4955,12 @@ static void gfx_v9_0_update_3d_clock_gating(struct amdgpu_device *adev,
|
|
Takashi Iwai |
57f36e |
/* enable 3Dcgcg FSM(0x0000363f) */
|
|
Takashi Iwai |
57f36e |
def = RREG32_SOC15(GC, 0, mmRLC_CGCG_CGLS_CTRL_3D);
|
|
Takashi Iwai |
57f36e |
|
|
Takashi Iwai |
57f36e |
- data = (0x36 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT) |
|
|
Takashi Iwai |
57f36e |
- RLC_CGCG_CGLS_CTRL_3D__CGCG_EN_MASK;
|
|
Takashi Iwai |
57f36e |
+ if (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGCG)
|
|
Takashi Iwai |
57f36e |
+ data = (0x36 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT) |
|
|
Takashi Iwai |
57f36e |
+ RLC_CGCG_CGLS_CTRL_3D__CGCG_EN_MASK;
|
|
Takashi Iwai |
57f36e |
+ else
|
|
Takashi Iwai |
57f36e |
+ data = 0x0 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT;
|
|
Takashi Iwai |
57f36e |
+
|
|
Takashi Iwai |
57f36e |
if (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGLS)
|
|
Takashi Iwai |
57f36e |
data |= (0x000F << RLC_CGCG_CGLS_CTRL_3D__CGLS_REP_COMPANSAT_DELAY__SHIFT) |
|
|
Takashi Iwai |
57f36e |
RLC_CGCG_CGLS_CTRL_3D__CGLS_EN_MASK;
|
|
Takashi Iwai |
57f36e |
diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c
|
|
Takashi Iwai |
57f36e |
index 8e1b9a40839f..980675052b53 100644
|
|
Takashi Iwai |
57f36e |
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
|
|
Takashi Iwai |
57f36e |
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
|
|
Takashi Iwai |
57f36e |
@@ -1392,7 +1392,6 @@ static int soc15_common_early_init(void *handle)
|
|
Takashi Iwai |
57f36e |
adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_MGLS |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_CP_LS |
|
|
Takashi Iwai |
57f36e |
- AMD_CG_SUPPORT_GFX_3D_CGCG |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_3D_CGLS |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_CGCG |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_CGLS |
|
|
Takashi Iwai |
57f36e |
@@ -1412,7 +1411,6 @@ static int soc15_common_early_init(void *handle)
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_MGLS |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_RLC_LS |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_CP_LS |
|
|
Takashi Iwai |
57f36e |
- AMD_CG_SUPPORT_GFX_3D_CGCG |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_3D_CGLS |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_CGCG |
|
|
Takashi Iwai |
57f36e |
AMD_CG_SUPPORT_GFX_CGLS |
|
|
Takashi Iwai |
57f36e |
--
|
|
Takashi Iwai |
57f36e |
2.26.2
|
|
Takashi Iwai |
57f36e |
|