[PATCH 1/4] drm/amd/pp: Add new smu callback function

Eric Huang jinhuieric.huang at amd.com
Thu Jan 25 16:18:45 UTC 2018


Hi Rex,

Why don't you use function smum_populate_requested_graphic_levels() 
which is doing exactly the same thing as the function you add ?

And in old power profile setting function 
smu7_set_power_profile_state(), we implement this:

if (hwmgr->chip_id == CHIP_FIJI) {
         if (request->type == AMD_PP_GFX_PROFILE)
             smu7_enable_power_containment(hwmgr);
         else if (request->type == AMD_PP_COMPUTE_PROFILE)
             smu7_disable_power_containment(hwmgr);
     }

This should be merged into your new power profile setting.

Regards,
Eric

On 2018-01-24 04:37 AM, Rex Zhu wrote:
> it is used for update dpm settings
>
> Change-Id: Idc0362c219d84564693ca90adf9299e56cfeb6a4
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
> ---
>   drivers/gpu/drm/amd/powerplay/inc/hwmgr.h     | 1 +
>   drivers/gpu/drm/amd/powerplay/inc/smumgr.h    | 1 +
>   drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 8 ++++++++
>   3 files changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> index 604a7cb..3e8959e 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
> @@ -238,6 +238,7 @@ struct pp_smumgr_func {
>   	int (*populate_requested_graphic_levels)(struct pp_hwmgr *hwmgr,
>   			struct amd_pp_profile *request);
>   	bool (*is_hw_avfs_present)(struct pp_hwmgr  *hwmgr);
> +	int (*update_dpm_settings)(struct pp_hwmgr *hwmgr, void *profile_setting);
>   };
>   
>   struct pp_hwmgr_func {
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/smumgr.h b/drivers/gpu/drm/amd/powerplay/inc/smumgr.h
> index b1b27b2..e05a57e 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/smumgr.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/smumgr.h
> @@ -134,5 +134,6 @@ extern int smum_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
>   
>   extern bool smum_is_hw_avfs_present(struct pp_hwmgr *hwmgr);
>   
> +extern int smum_update_dpm_settings(struct pp_hwmgr *hwmgr, void *profile_setting);
>   
>   #endif
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
> index 8673884..1ce4959 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
> @@ -253,3 +253,11 @@ bool smum_is_hw_avfs_present(struct pp_hwmgr *hwmgr)
>   
>   	return false;
>   }
> +
> +int smum_update_dpm_settings(struct pp_hwmgr *hwmgr, void *profile_setting)
> +{
> +	if (hwmgr->smumgr_funcs->update_dpm_settings)
> +		return hwmgr->smumgr_funcs->update_dpm_settings(hwmgr, profile_setting);
> +
> +	return -EINVAL;
> +}



More information about the amd-gfx mailing list