drm/amd/powerplay: add vclk/dclkSoftMin support for raven
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
5060baa0e5
commit
b59eb8984f
|
@ -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 {
|
||||||
|
|
||||||
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 {
|
||||||
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 @@
|
||||||
#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;
|
||||||
|
|
Loading…
Reference in New Issue