aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikita Lipski <mikita.lipski@amd.com>2018-05-14 10:13:57 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-05-15 14:44:25 -0400
commit8eb77198131bab4417b711f899473f4ee6b8ad55 (patch)
treebbf5b757bc864fa2535d93f5bfc32674cdb9b0c3
parenta2a330ad66313084c9432b32862aa7e1255da9b4 (diff)
drm/amd/powerplay: Add notify PWE function to SMU10
Functionality to message smc to enable pwe after gpu suspense. It is used in case when display resumes from S3 and wants to start audio driver by enabling pwe. Signed-off-by: Mikita Lipski <mikita.lipski@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c8
-rw-r--r--drivers/gpu/drm/amd/powerplay/inc/hwmgr.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
index 8b75f525fe49..2f69bfa478a7 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
@@ -1113,6 +1113,13 @@ static int smu10_set_watermarks_for_clocks_ranges(struct pp_hwmgr *hwmgr,
1113 data->water_marks_exist = true; 1113 data->water_marks_exist = true;
1114 return result; 1114 return result;
1115} 1115}
1116
1117static int smu10_smus_notify_pwe(struct pp_hwmgr *hwmgr)
1118{
1119
1120 return smum_send_msg_to_smc(hwmgr, PPSMC_MSG_SetRccPfcPmeRestoreRegister);
1121}
1122
1116static int smu10_set_mmhub_powergating_by_smu(struct pp_hwmgr *hwmgr) 1123static int smu10_set_mmhub_powergating_by_smu(struct pp_hwmgr *hwmgr)
1117{ 1124{
1118 return smum_send_msg_to_smc(hwmgr, PPSMC_MSG_PowerGateMmHub); 1125 return smum_send_msg_to_smc(hwmgr, PPSMC_MSG_PowerGateMmHub);
@@ -1153,6 +1160,7 @@ static const struct pp_hwmgr_func smu10_hwmgr_funcs = {
1153 .power_state_set = smu10_set_power_state_tasks, 1160 .power_state_set = smu10_set_power_state_tasks,
1154 .dynamic_state_management_disable = smu10_disable_dpm_tasks, 1161 .dynamic_state_management_disable = smu10_disable_dpm_tasks,
1155 .set_mmhub_powergating_by_smu = smu10_set_mmhub_powergating_by_smu, 1162 .set_mmhub_powergating_by_smu = smu10_set_mmhub_powergating_by_smu,
1163 .smus_notify_pwe = smu10_smus_notify_pwe,
1156 .gfx_off_control = smu10_gfx_off_control, 1164 .gfx_off_control = smu10_gfx_off_control,
1157}; 1165};
1158 1166
diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
index 3d9743f5bb45..3c321c7d9626 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
@@ -326,6 +326,7 @@ struct pp_hwmgr_func {
326 long *input, uint32_t size); 326 long *input, uint32_t size);
327 int (*set_power_limit)(struct pp_hwmgr *hwmgr, uint32_t n); 327 int (*set_power_limit)(struct pp_hwmgr *hwmgr, uint32_t n);
328 int (*set_mmhub_powergating_by_smu)(struct pp_hwmgr *hwmgr); 328 int (*set_mmhub_powergating_by_smu)(struct pp_hwmgr *hwmgr);
329 int (*smus_notify_pwe)(struct pp_hwmgr *hwmgr);
329}; 330};
330 331
331struct pp_table_func { 332struct pp_table_func {