drm/amd/pm: Disable GFXOFF when GFX DPM or PG disabled
authorJinzhou Su <Jinzhou.Su@amd.com>
Tue, 2 Feb 2021 11:58:17 +0000 (19:58 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 2 Feb 2021 17:12:45 +0000 (12:12 -0500)
Check GFX DPM and PG bit before enable GFXOFF on Vangogh
smu post init.

Signed-off-by: Jinzhou Su <Jinzhou.Su@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c

index 4726cac..f0f06ef 100644 (file)
@@ -1712,10 +1712,16 @@ static int vangogh_post_smu_init(struct smu_context *smu)
                adev->gfx.config.max_sh_per_se * adev->gfx.config.max_shader_engines;
 
        /* allow message will be sent after enable message on Vangogh*/
-       ret = smu_cmn_send_smc_msg(smu, SMU_MSG_EnableGfxOff, NULL);
-       if (ret) {
-               dev_err(adev->dev, "Failed to Enable GfxOff!\n");
-               return ret;
+       if (smu_cmn_feature_is_supported(smu, SMU_FEATURE_DPM_GFXCLK_BIT) &&
+                       (adev->pg_flags & AMD_PG_SUPPORT_GFX_PG)) {
+               ret = smu_cmn_send_smc_msg(smu, SMU_MSG_EnableGfxOff, NULL);
+               if (ret) {
+                       dev_err(adev->dev, "Failed to Enable GfxOff!\n");
+                       return ret;
+               }
+       } else {
+               adev->pm.pp_feature &= ~PP_GFXOFF_MASK;
+               dev_info(adev->dev, "If GFX DPM or power gate disabled, disable GFXOFF\n");
        }
 
        /* if all CUs are active, no need to power off any WGPs */