drm/amd/pm: fix uninitialized variable warnings for vangogh_ppt
authorTim Huang <Tim.Huang@amd.com>
Sun, 28 Apr 2024 07:42:03 +0000 (15:42 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 8 May 2024 19:17:04 +0000 (15:17 -0400)
1. Fix a issue that using uninitialized mask to get the ultimate frequency.
2. Check return of smu_cmn_send_smc_msg_with_param to avoid using
uninitialized variable residency.

Signed-off-by: Tim Huang <Tim.Huang@amd.com>
Reviewed-by: Yang Wang <kevinyang.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c

index 379e44e..22737b1 100644 (file)
@@ -976,6 +976,18 @@ static int vangogh_get_dpm_ultimate_freq(struct smu_context *smu,
                }
        }
        if (min) {
+               ret = vangogh_get_profiling_clk_mask(smu,
+                                                    AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK,
+                                                    NULL,
+                                                    NULL,
+                                                    &mclk_mask,
+                                                    &fclk_mask,
+                                                    &soc_mask);
+               if (ret)
+                       goto failed;
+
+               vclk_mask = dclk_mask = 0;
+
                switch (clk_type) {
                case SMU_UCLK:
                case SMU_MCLK:
@@ -2450,6 +2462,8 @@ static u32 vangogh_set_gfxoff_residency(struct smu_context *smu, bool start)
 
        ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_LogGfxOffResidency,
                                              start, &residency);
+       if (ret)
+               return ret;
 
        if (!start)
                adev->gfx.gfx_off_residency = residency;