Commit b59eb898 authored by Junwei Zhang's avatar Junwei Zhang Committed by Alex Deucher

drm/amd/powerplay: add vclk/dclkSoftMin support for raven

Signed-off-by: default avatarJunwei Zhang <Jerry.Zhang@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 5060baa0
...@@ -265,6 +265,15 @@ static int rv_tf_set_clock_limit(struct pp_hwmgr *hwmgr, void *input, ...@@ -265,6 +265,15 @@ static int rv_tf_set_clock_limit(struct pp_hwmgr *hwmgr, void *input,
} }
} */ } */
if (((hwmgr->uvd_arbiter.vclk_soft_min / 100) != rv_data->vclk_soft_min) ||
((hwmgr->uvd_arbiter.dclk_soft_min / 100) != rv_data->dclk_soft_min)) {
rv_data->vclk_soft_min = hwmgr->uvd_arbiter.vclk_soft_min / 100;
rv_data->dclk_soft_min = hwmgr->uvd_arbiter.dclk_soft_min / 100;
smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
PPSMC_MSG_SetSoftMinVcn,
(rv_data->vclk_soft_min << 16) | rv_data->vclk_soft_min);
}
if((hwmgr->gfx_arbiter.sclk_hard_min != 0) && if((hwmgr->gfx_arbiter.sclk_hard_min != 0) &&
((hwmgr->gfx_arbiter.sclk_hard_min / 100) != rv_data->soc_actual_hard_min_freq)) { ((hwmgr->gfx_arbiter.sclk_hard_min / 100) != rv_data->soc_actual_hard_min_freq)) {
smum_send_msg_to_smc_with_parameter(hwmgr->smumgr, smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
......
...@@ -280,6 +280,8 @@ struct rv_hwmgr { ...@@ -280,6 +280,8 @@ struct rv_hwmgr {
uint32_t f_actual_hard_min_freq; uint32_t f_actual_hard_min_freq;
uint32_t fabric_actual_soft_min_freq; uint32_t fabric_actual_soft_min_freq;
uint32_t vclk_soft_min;
uint32_t dclk_soft_min;
uint32_t gfx_actual_soft_min_freq; uint32_t gfx_actual_soft_min_freq;
bool vcn_power_gated; bool vcn_power_gated;
......
...@@ -128,6 +128,8 @@ struct phm_uvd_arbiter { ...@@ -128,6 +128,8 @@ struct phm_uvd_arbiter {
uint32_t dclk; uint32_t dclk;
uint32_t vclk_ceiling; uint32_t vclk_ceiling;
uint32_t dclk_ceiling; uint32_t dclk_ceiling;
uint32_t vclk_soft_min;
uint32_t dclk_soft_min;
}; };
struct phm_vce_arbiter { struct phm_vce_arbiter {
......
...@@ -66,7 +66,12 @@ ...@@ -66,7 +66,12 @@
#define PPSMC_MSG_SetMinVddcrSocVoltage 0x22 #define PPSMC_MSG_SetMinVddcrSocVoltage 0x22
#define PPSMC_MSG_SetMinVideoFclkFreq 0x23 #define PPSMC_MSG_SetMinVideoFclkFreq 0x23
#define PPSMC_MSG_SetMinDeepSleepDcefclk 0x24 #define PPSMC_MSG_SetMinDeepSleepDcefclk 0x24
#define PPSMC_Message_Count 0x25 #define PPSMC_MSG_ForcePowerDownGfx 0x25
#define PPSMC_MSG_SetPhyclkVoltageByFreq 0x26
#define PPSMC_MSG_SetDppclkVoltageByFreq 0x27
#define PPSMC_MSG_SetSoftMinVcn 0x28
#define PPSMC_Message_Count 0x29
typedef uint16_t PPSMC_Result; typedef uint16_t PPSMC_Result;
typedef int PPSMC_Msg; typedef int PPSMC_Msg;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment