[PATCH 4/4] drm/amd/pp: Implement set_power_profile_mode on smu7
Zhu, Rex
Rex.Zhu at amd.com
Wed Jan 24 20:13:18 UTC 2018
Hi Eric,
We have sysfs pp-dpm-sclk/mclk to set min dpm level
Best Regards
Rex
________________________________
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> on behalf of Eric Huang <jinhuieric.huang at amd.com>
Sent: Thursday, January 25, 2018 12:04:55 AM
To: amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH 4/4] drm/amd/pp: Implement set_power_profile_mode on smu7
We have min_sclk and min_mclk in previous power profile parameters for
VI, which are similar with min_active_level for Vega10. How to implement
these parameters?
Regards,
Eric
On 2018-01-24 04:37 AM, Rex Zhu wrote:
> User can set smu7 profile pamameters through sysfs
>
> echo "0/1/2/3/4">pp_power_profile_mode
> to select 3D_FULL_SCREEN/POWER_SAVING/VIDEO/VR/COMPUTE
> mode.
> echo "5 * * * * * * * *">pp_power_profile_mode
> to config custom mode.
> "5 * * * * * * * *" mean "CUSTOM enable_sclk SCLK_UP_HYST
> SCLK_DOWN_HYST SCLK_ACTIVE_LEVEL enable_mclk MCLK_UP_HYST
> MCLK_DOWN_HYST MCLK_ACTIVE_LEVEL"
>
> Change-Id: Ic6d6f37363bc81ab17051285f6ace847edf725de
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
> ---
> drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 49 +++++++++++++++++++++++-
> 1 file changed, 48 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> index 9f6afd5..13db75c 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> @@ -5036,7 +5036,54 @@ static int smu7_get_power_profile_mode(struct pp_hwmgr *hwmgr, char *buf)
>
> static int smu7_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, uint32_t size)
> {
> - /* To Do */
> + struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
> + struct profile_mode_setting tmp;
> +
> + hwmgr->power_profile_mode = input[size];
> +
> + switch (hwmgr->power_profile_mode) {
> + case PP_SMC_POWER_PROFILE_CUSTOM:
> + if (size < 8)
> + return -EINVAL;
> +
> + data->custom_profile_setting.bupdate_sclk = input[0];
> + data->custom_profile_setting.sclk_up_hyst = input[1];
> + data->custom_profile_setting.sclk_down_hyst = input[2];
> + data->custom_profile_setting.sclk_activity = input[3];
> + data->custom_profile_setting.bupdate_mclk = input[4];
> + data->custom_profile_setting.mclk_up_hyst = input[5];
> + data->custom_profile_setting.mclk_down_hyst = input[6];
> + data->custom_profile_setting.mclk_activity = input[7];
> + if (!smum_update_dpm_settings(hwmgr, &data->custom_profile_setting))
> + memcpy(&data->current_profile_setting, &data->custom_profile_setting, sizeof(struct profile_mode_setting));
> + break;
> + case PP_SMC_POWER_PROFILE_FULLSCREEN3D:
> + case PP_SMC_POWER_PROFILE_POWERSAVING:
> + case PP_SMC_POWER_PROFILE_VIDEO:
> + case PP_SMC_POWER_PROFILE_VR:
> + case PP_SMC_POWER_PROFILE_COMPUTE:
> + memcpy(&tmp, &smu7_profiling[hwmgr->power_profile_mode], sizeof(struct profile_mode_setting));
> + if (!smum_update_dpm_settings(hwmgr, &tmp)) {
> + if (tmp.bupdate_sclk) {
> + data->current_profile_setting.bupdate_sclk = tmp.bupdate_sclk;
> + data->current_profile_setting.sclk_up_hyst = tmp.sclk_up_hyst;
> + data->current_profile_setting.sclk_down_hyst = tmp.sclk_down_hyst;
> + data->current_profile_setting.sclk_activity = tmp.sclk_activity;
> + }
> + if (tmp.bupdate_mclk) {
> + data->current_profile_setting.bupdate_mclk = tmp.bupdate_mclk;
> + data->current_profile_setting.mclk_up_hyst = tmp.mclk_up_hyst;
> + data->current_profile_setting.mclk_down_hyst = tmp.mclk_down_hyst;
> + data->current_profile_setting.mclk_activity = tmp.mclk_activity;
> + }
> + }
> + break;
> + case PP_SMC_POWER_PROFILE_AUTO: /* TO DO auto wattman feature not implement */
> + return 0;
> + default:
> + return -EINVAL;
> + }
> +
> return 0;
> }
>
_______________________________________________
amd-gfx mailing list
amd-gfx at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20180124/632664a3/attachment.html>
More information about the amd-gfx
mailing list