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; > +}