[PATCH] drm/amd/powerplay: add vclk/dclkSoftMin support for raven
Alex Deucher
alexdeucher at gmail.com
Fri Jul 28 16:26:19 UTC 2017
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
More information about the amd-gfx
mailing list