mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
drm/amd/pm: fix uninitialized variable warnings for vega10_hwmgr
[ Upstream commit 5fa7d540d95d97ddc021a74583f6b3da4df9c93a ] Clear warnings that using uninitialized variable when fails to get the valid value from SMU. 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
20c6373a6b
commit
ef18f5c7cd
@@ -355,13 +355,13 @@ static int vega10_odn_initial_default_setting(struct pp_hwmgr *hwmgr)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vega10_init_dpm_defaults(struct pp_hwmgr *hwmgr)
|
static int vega10_init_dpm_defaults(struct pp_hwmgr *hwmgr)
|
||||||
{
|
{
|
||||||
struct vega10_hwmgr *data = hwmgr->backend;
|
struct vega10_hwmgr *data = hwmgr->backend;
|
||||||
int i;
|
|
||||||
uint32_t sub_vendor_id, hw_revision;
|
uint32_t sub_vendor_id, hw_revision;
|
||||||
uint32_t top32, bottom32;
|
uint32_t top32, bottom32;
|
||||||
struct amdgpu_device *adev = hwmgr->adev;
|
struct amdgpu_device *adev = hwmgr->adev;
|
||||||
|
int ret, i;
|
||||||
|
|
||||||
vega10_initialize_power_tune_defaults(hwmgr);
|
vega10_initialize_power_tune_defaults(hwmgr);
|
||||||
|
|
||||||
@@ -486,9 +486,12 @@ static void vega10_init_dpm_defaults(struct pp_hwmgr *hwmgr)
|
|||||||
if (data->registry_data.vr0hot_enabled)
|
if (data->registry_data.vr0hot_enabled)
|
||||||
data->smu_features[GNLD_VR0HOT].supported = true;
|
data->smu_features[GNLD_VR0HOT].supported = true;
|
||||||
|
|
||||||
smum_send_msg_to_smc(hwmgr,
|
ret = smum_send_msg_to_smc(hwmgr,
|
||||||
PPSMC_MSG_GetSmuVersion,
|
PPSMC_MSG_GetSmuVersion,
|
||||||
&hwmgr->smu_version);
|
&hwmgr->smu_version);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
/* ACG firmware has major version 5 */
|
/* ACG firmware has major version 5 */
|
||||||
if ((hwmgr->smu_version & 0xff000000) == 0x5000000)
|
if ((hwmgr->smu_version & 0xff000000) == 0x5000000)
|
||||||
data->smu_features[GNLD_ACG].supported = true;
|
data->smu_features[GNLD_ACG].supported = true;
|
||||||
@@ -506,10 +509,16 @@ static void vega10_init_dpm_defaults(struct pp_hwmgr *hwmgr)
|
|||||||
data->smu_features[GNLD_PCC_LIMIT].supported = true;
|
data->smu_features[GNLD_PCC_LIMIT].supported = true;
|
||||||
|
|
||||||
/* Get the SN to turn into a Unique ID */
|
/* Get the SN to turn into a Unique ID */
|
||||||
smum_send_msg_to_smc(hwmgr, PPSMC_MSG_ReadSerialNumTop32, &top32);
|
ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_ReadSerialNumTop32, &top32);
|
||||||
smum_send_msg_to_smc(hwmgr, PPSMC_MSG_ReadSerialNumBottom32, &bottom32);
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_ReadSerialNumBottom32, &bottom32);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
adev->unique_id = ((uint64_t)bottom32 << 32) | top32;
|
adev->unique_id = ((uint64_t)bottom32 << 32) | top32;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PPLIB_VEGA10_EVV_SUPPORT
|
#ifdef PPLIB_VEGA10_EVV_SUPPORT
|
||||||
@@ -883,7 +892,9 @@ static int vega10_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
|
|||||||
|
|
||||||
vega10_set_features_platform_caps(hwmgr);
|
vega10_set_features_platform_caps(hwmgr);
|
||||||
|
|
||||||
vega10_init_dpm_defaults(hwmgr);
|
result = vega10_init_dpm_defaults(hwmgr);
|
||||||
|
if (result)
|
||||||
|
return result;
|
||||||
|
|
||||||
#ifdef PPLIB_VEGA10_EVV_SUPPORT
|
#ifdef PPLIB_VEGA10_EVV_SUPPORT
|
||||||
/* Get leakage voltage based on leakage ID. */
|
/* Get leakage voltage based on leakage ID. */
|
||||||
@@ -3917,11 +3928,14 @@ static int vega10_get_gpu_power(struct pp_hwmgr *hwmgr,
|
|||||||
uint32_t *query)
|
uint32_t *query)
|
||||||
{
|
{
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (!query)
|
if (!query)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrPkgPwr, &value);
|
ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrPkgPwr, &value);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
/* SMC returning actual watts, keep consistent with legacy asics, low 8 bit as 8 fractional bits */
|
/* SMC returning actual watts, keep consistent with legacy asics, low 8 bit as 8 fractional bits */
|
||||||
*query = value << 8;
|
*query = value << 8;
|
||||||
@@ -4817,14 +4831,16 @@ static int vega10_print_clock_levels(struct pp_hwmgr *hwmgr,
|
|||||||
uint32_t gen_speed, lane_width, current_gen_speed, current_lane_width;
|
uint32_t gen_speed, lane_width, current_gen_speed, current_lane_width;
|
||||||
PPTable_t *pptable = &(data->smc_state_table.pp_table);
|
PPTable_t *pptable = &(data->smc_state_table.pp_table);
|
||||||
|
|
||||||
int i, now, size = 0, count = 0;
|
int i, ret, now, size = 0, count = 0;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case PP_SCLK:
|
case PP_SCLK:
|
||||||
if (data->registry_data.sclk_dpm_key_disabled)
|
if (data->registry_data.sclk_dpm_key_disabled)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentGfxclkIndex, &now);
|
ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentGfxclkIndex, &now);
|
||||||
|
if (ret)
|
||||||
|
break;
|
||||||
|
|
||||||
if (hwmgr->pp_one_vf &&
|
if (hwmgr->pp_one_vf &&
|
||||||
(hwmgr->dpm_level == AMD_DPM_FORCED_LEVEL_PROFILE_PEAK))
|
(hwmgr->dpm_level == AMD_DPM_FORCED_LEVEL_PROFILE_PEAK))
|
||||||
@@ -4840,7 +4856,9 @@ static int vega10_print_clock_levels(struct pp_hwmgr *hwmgr,
|
|||||||
if (data->registry_data.mclk_dpm_key_disabled)
|
if (data->registry_data.mclk_dpm_key_disabled)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentUclkIndex, &now);
|
ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentUclkIndex, &now);
|
||||||
|
if (ret)
|
||||||
|
break;
|
||||||
|
|
||||||
for (i = 0; i < mclk_table->count; i++)
|
for (i = 0; i < mclk_table->count; i++)
|
||||||
size += sprintf(buf + size, "%d: %uMhz %s\n",
|
size += sprintf(buf + size, "%d: %uMhz %s\n",
|
||||||
@@ -4851,7 +4869,9 @@ static int vega10_print_clock_levels(struct pp_hwmgr *hwmgr,
|
|||||||
if (data->registry_data.socclk_dpm_key_disabled)
|
if (data->registry_data.socclk_dpm_key_disabled)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentSocclkIndex, &now);
|
ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentSocclkIndex, &now);
|
||||||
|
if (ret)
|
||||||
|
break;
|
||||||
|
|
||||||
for (i = 0; i < soc_table->count; i++)
|
for (i = 0; i < soc_table->count; i++)
|
||||||
size += sprintf(buf + size, "%d: %uMhz %s\n",
|
size += sprintf(buf + size, "%d: %uMhz %s\n",
|
||||||
@@ -4862,8 +4882,10 @@ static int vega10_print_clock_levels(struct pp_hwmgr *hwmgr,
|
|||||||
if (data->registry_data.dcefclk_dpm_key_disabled)
|
if (data->registry_data.dcefclk_dpm_key_disabled)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
smum_send_msg_to_smc_with_parameter(hwmgr,
|
ret = smum_send_msg_to_smc_with_parameter(hwmgr,
|
||||||
PPSMC_MSG_GetClockFreqMHz, CLK_DCEFCLK, &now);
|
PPSMC_MSG_GetClockFreqMHz, CLK_DCEFCLK, &now);
|
||||||
|
if (ret)
|
||||||
|
break;
|
||||||
|
|
||||||
for (i = 0; i < dcef_table->count; i++)
|
for (i = 0; i < dcef_table->count; i++)
|
||||||
size += sprintf(buf + size, "%d: %uMhz %s\n",
|
size += sprintf(buf + size, "%d: %uMhz %s\n",
|
||||||
|
|||||||
@@ -130,13 +130,17 @@ int vega10_get_enabled_smc_features(struct pp_hwmgr *hwmgr,
|
|||||||
uint64_t *features_enabled)
|
uint64_t *features_enabled)
|
||||||
{
|
{
|
||||||
uint32_t enabled_features;
|
uint32_t enabled_features;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (features_enabled == NULL)
|
if (features_enabled == NULL)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
smum_send_msg_to_smc(hwmgr,
|
ret = smum_send_msg_to_smc(hwmgr,
|
||||||
PPSMC_MSG_GetEnabledSmuFeatures,
|
PPSMC_MSG_GetEnabledSmuFeatures,
|
||||||
&enabled_features);
|
&enabled_features);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
*features_enabled = enabled_features;
|
*features_enabled = enabled_features;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user