lkml.org 
[lkml]   [2021]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.12 078/127] drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang
    Date
    From: Changfeng <Changfeng.Zhu@amd.com>

    commit dbd1003d1252db5973dddf20b24bb0106ac52aa2 upstream.

    There is problem with 3DCGCG firmware and it will cause compute test
    hang on picasso/raven1. It needs to disable 3DCGCG in driver to avoid
    compute hang.

    Signed-off-by: Changfeng <Changfeng.Zhu@amd.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Huang Rui <ray.huang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 10 +++++++---
    drivers/gpu/drm/amd/amdgpu/soc15.c | 2 --
    2 files changed, 7 insertions(+), 5 deletions(-)

    --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
    +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
    @@ -4864,7 +4864,7 @@ static void gfx_v9_0_update_3d_clock_gat
    amdgpu_gfx_rlc_enter_safe_mode(adev);

    /* Enable 3D CGCG/CGLS */
    - if (enable && (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGCG)) {
    + if (enable) {
    /* write cmd to clear cgcg/cgls ov */
    def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
    /* unset CGCG override */
    @@ -4876,8 +4876,12 @@ static void gfx_v9_0_update_3d_clock_gat
    /* enable 3Dcgcg FSM(0x0000363f) */
    def = RREG32_SOC15(GC, 0, mmRLC_CGCG_CGLS_CTRL_3D);

    - data = (0x36 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT) |
    - RLC_CGCG_CGLS_CTRL_3D__CGCG_EN_MASK;
    + if (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGCG)
    + data = (0x36 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT) |
    + RLC_CGCG_CGLS_CTRL_3D__CGCG_EN_MASK;
    + else
    + data = 0x0 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT;
    +
    if (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGLS)
    data |= (0x000F << RLC_CGCG_CGLS_CTRL_3D__CGLS_REP_COMPANSAT_DELAY__SHIFT) |
    RLC_CGCG_CGLS_CTRL_3D__CGLS_EN_MASK;
    --- a/drivers/gpu/drm/amd/amdgpu/soc15.c
    +++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
    @@ -1151,7 +1151,6 @@ static int soc15_common_early_init(void
    adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
    AMD_CG_SUPPORT_GFX_MGLS |
    AMD_CG_SUPPORT_GFX_CP_LS |
    - AMD_CG_SUPPORT_GFX_3D_CGCG |
    AMD_CG_SUPPORT_GFX_3D_CGLS |
    AMD_CG_SUPPORT_GFX_CGCG |
    AMD_CG_SUPPORT_GFX_CGLS |
    @@ -1170,7 +1169,6 @@ static int soc15_common_early_init(void
    AMD_CG_SUPPORT_GFX_MGLS |
    AMD_CG_SUPPORT_GFX_RLC_LS |
    AMD_CG_SUPPORT_GFX_CP_LS |
    - AMD_CG_SUPPORT_GFX_3D_CGCG |
    AMD_CG_SUPPORT_GFX_3D_CGLS |
    AMD_CG_SUPPORT_GFX_CGCG |
    AMD_CG_SUPPORT_GFX_CGLS |

    \
     
     \ /
      Last update: 2021-05-24 18:31    [W:4.268 / U:0.816 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site