On Fri, Jul 28, 2017 at 5:28 AM, Junwei Zhang <Jerry.Zhang at amd.com> wrote: > Signed-off-by: Junwei Zhang <Jerry.Zhang at amd.com> Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 9 +++++++++ > drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h | 2 ++ > drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 2 ++ > drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h | 7 ++++++- > 4 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c > index f61da66..14e0321 100644 > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c > @@ -279,6 +279,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) && > ((hwmgr->gfx_arbiter.sclk_hard_min / 100) != rv_data->soc_actual_hard_min_freq)) { > smum_send_msg_to_smc_with_parameter(hwmgr->smumgr, > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h > index afb8522..2472b50 100644 > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h > @@ -280,6 +280,8 @@ struct rv_hwmgr { > > uint32_t f_actual_hard_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; > > bool vcn_power_gated; > diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h > index 3a0e6b1..f539d55 100644 > --- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h > +++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h > @@ -128,6 +128,8 @@ struct phm_uvd_arbiter { > uint32_t dclk; > uint32_t vclk_ceiling; > uint32_t dclk_ceiling; > + uint32_t vclk_soft_min; > + uint32_t dclk_soft_min; > }; > > struct phm_vce_arbiter { > diff --git a/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h b/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h > index e0e106f..901c960c 100644 > --- a/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h > +++ b/drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h > @@ -66,7 +66,12 @@ > #define PPSMC_MSG_SetMinVddcrSocVoltage 0x22 > #define PPSMC_MSG_SetMinVideoFclkFreq 0x23 > #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 int PPSMC_Msg; > -- > 1.9.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx