aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRex Zhu <Rex.Zhu@amd.com>2018-01-24 01:48:17 -0500
committerAlex Deucher <alexander.deucher@amd.com>2018-03-05 15:39:28 -0500
commit31bc45de132a2af9861622eb36764bf375c68cb4 (patch)
treee1f1da3d603e37233e9e0c8f4fba99d62ac8c30e
parent15826fbfef16a20799fa7c990df758b455bf7b62 (diff)
drm/amd/pp: Add common interface in smu for update dpm setting
it is used for adjust part of dpm settigs per workloads to change the natural dpm behavior for better perf or perf/watt. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/powerplay/inc/hwmgr.h1
-rw-r--r--drivers/gpu/drm/amd/powerplay/inc/smumgr.h1
-rw-r--r--drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c8
3 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
index bb50cc2b4af1..ae73956de533 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
@@ -239,6 +239,7 @@ struct pp_smumgr_func {
239 int (*populate_requested_graphic_levels)(struct pp_hwmgr *hwmgr, 239 int (*populate_requested_graphic_levels)(struct pp_hwmgr *hwmgr,
240 struct amd_pp_profile *request); 240 struct amd_pp_profile *request);
241 bool (*is_hw_avfs_present)(struct pp_hwmgr *hwmgr); 241 bool (*is_hw_avfs_present)(struct pp_hwmgr *hwmgr);
242 int (*update_dpm_settings)(struct pp_hwmgr *hwmgr, void *profile_setting);
242}; 243};
243 244
244struct pp_hwmgr_func { 245struct pp_hwmgr_func {
diff --git a/drivers/gpu/drm/amd/powerplay/inc/smumgr.h b/drivers/gpu/drm/amd/powerplay/inc/smumgr.h
index b1b27b2128f6..e05a57e2eedc 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,
134 134
135extern bool smum_is_hw_avfs_present(struct pp_hwmgr *hwmgr); 135extern bool smum_is_hw_avfs_present(struct pp_hwmgr *hwmgr);
136 136
137extern int smum_update_dpm_settings(struct pp_hwmgr *hwmgr, void *profile_setting);
137 138
138#endif 139#endif
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
index 867388456530..1ce4959cba6e 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)
253 253
254 return false; 254 return false;
255} 255}
256
257int smum_update_dpm_settings(struct pp_hwmgr *hwmgr, void *profile_setting)
258{
259 if (hwmgr->smumgr_funcs->update_dpm_settings)
260 return hwmgr->smumgr_funcs->update_dpm_settings(hwmgr, profile_setting);
261
262 return -EINVAL;
263}