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.hu...@amd.com>
---
 drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
index 29295941aca9..b40cb4e255e9 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
@@ -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;
-- 
2.39.2

Reply via email to