[PATCH] drm/amd/pp: Restore power profile mode in auto dpm level on Vega10
Rex Zhu
Rex.Zhu at amd.com
Fri Feb 2 09:17:43 UTC 2018
As auto power profile mode still not support on vega10, so
just restore default profile mode in auto dpm level.
Change-Id: I36359c1d11a48308bc9482f7aafe4c98767ac715
Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
---
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 10 +++++++---
drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 1 +
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index dfaadab..9a9a24e 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -761,6 +761,7 @@ static int vega10_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
hwmgr->backend = data;
hwmgr->power_profile_mode = PP_SMC_POWER_PROFILE_VIDEO;
+ hwmgr->default_power_profile_mode = PP_SMC_POWER_PROFILE_VIDEO;
vega10_set_default_registry_data(hwmgr);
@@ -4228,6 +4229,11 @@ static int vega10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
break;
case AMD_DPM_FORCED_LEVEL_AUTO:
ret = vega10_unforce_dpm_levels(hwmgr);
+ if (hwmgr->default_power_profile_mode != hwmgr->power_profile_mode) {
+ smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_SetWorkloadMask,
+ 1 << hwmgr->default_power_profile_mode);
+ hwmgr->power_profile_mode = hwmgr->default_power_profile_mode;
+ }
break;
case AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD:
case AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK:
@@ -4251,6 +4257,7 @@ static int vega10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
else if (level != AMD_DPM_FORCED_LEVEL_PROFILE_PEAK && hwmgr->dpm_level == AMD_DPM_FORCED_LEVEL_PROFILE_PEAK)
vega10_set_fan_control_mode(hwmgr, AMD_FAN_CTRL_AUTO);
}
+
return ret;
}
@@ -5068,9 +5075,6 @@ static int vega10_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, ui
uint8_t use_rlc_busy;
uint8_t min_active_level;
- if (input[size] == PP_SMC_POWER_PROFILE_AUTO)
- return 0; /* TO DO auto wattman feature not enabled */
-
hwmgr->power_profile_mode = input[size];
smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_SetWorkloadMask,
diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
index 376af67..231c9be 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
@@ -758,6 +758,7 @@ struct pp_hwmgr {
enum amd_pp_profile_type current_power_profile;
bool en_umd_pstate;
uint32_t power_profile_mode;
+ uint32_t default_power_profile_mode;
uint32_t pstate_sclk;
uint32_t pstate_mclk;
bool od_enabled;
--
1.9.1
More information about the amd-gfx
mailing list