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 <[email protected]>
---
  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;
+}

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to