[PATCH] drm/amd/pm: fix the uninitialized scalar variable warning

Jesse Zhang jesse.zhang at amd.com
Tue Apr 30 07:14:11 UTC 2024


Fix warning for using uninitialized values
sclk_mask, mclk_mask and soc_mask.
v2:Set default variable to UMD PSTATE(Tim Huang)

Signed-off-by: Jesse Zhang <Jesse.Zhang at amd.com>
---
 .../gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c   | 32 ++++++++++++++++---
 1 file changed, 27 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
index 8908bbb3ff1f..36a49cfc22e4 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
@@ -835,10 +835,20 @@ static int renoir_force_clk_levels(struct smu_context *smu,
 		ret = renoir_get_dpm_clk_limited(smu, clk_type, soft_max_level, &max_freq);
 		if (ret)
 			return ret;
-		ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetSoftMaxSocclkByFreq, max_freq, NULL);
+		 /* =  0: min_freq
+		  * =  1: UMD_PSTATE_CLK
+		  * >= 2: max_freq
+		  */
+		ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetSoftMaxSocclkByFreq,
+							soft_max_level == 0 ? min_freq :
+							soft_max_level == 1 ? RENOIR_UMD_PSTATE_SOCCLK : max_freq,
+							NULL);
 		if (ret)
 			return ret;
-		ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetHardMinSocclkByFreq, min_freq, NULL);
+		ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetHardMinSocclkByFreq,
+							soft_min_level == 0 ? min_freq :
+							soft_min_level == 1 ? RENOIR_UMD_PSTATE_SOCCLK : max_freq,
+							NULL);
 		if (ret)
 			return ret;
 		break;
@@ -850,10 +860,21 @@ static int renoir_force_clk_levels(struct smu_context *smu,
 		ret = renoir_get_dpm_clk_limited(smu, clk_type, soft_max_level, &max_freq);
 		if (ret)
 			return ret;
-		ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetSoftMaxFclkByFreq, max_freq, NULL);
+		/* mclk levels are in reverse order
+		 * =  0: max_freq
+		 * =  1: UMD_PSTATE_CLK
+		 * >= 2: min_freq
+		 */
+		ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetSoftMaxFclkByFreq,
+							soft_max_level >= 2 ? min_freq :
+							soft_max_level == 1 ? RENOIR_UMD_PSTATE_FCLK : max_freq,
+							NULL);
 		if (ret)
 			return ret;
-		ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetHardMinFclkByFreq, min_freq, NULL);
+		ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetHardMinFclkByFreq,
+							soft_min_level >= 2  ? min_freq :
+							soft_min_level == 1 ? RENOIR_UMD_PSTATE_SOCCLK : max_freq,
+							NULL);
 		if (ret)
 			return ret;
 		break;
@@ -932,7 +953,8 @@ static int renoir_set_performance_level(struct smu_context *smu,
 					enum amd_dpm_forced_level level)
 {
 	int ret = 0;
-	uint32_t sclk_mask, mclk_mask, soc_mask;
+	/* default mask is UMD PSTATE CLK */
+	uint32_t sclk_mask = 1, mclk_mask = 1, soc_mask = 1;
 
 	switch (level) {
 	case AMD_DPM_FORCED_LEVEL_HIGH:
-- 
2.25.1



More information about the amd-gfx mailing list