aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3527-drm-amd-pp-Restore-power-profile-mode-in-auto-dpm-le.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3527-drm-amd-pp-Restore-power-profile-mode-in-auto-dpm-le.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3527-drm-amd-pp-Restore-power-profile-mode-in-auto-dpm-le.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3527-drm-amd-pp-Restore-power-profile-mode-in-auto-dpm-le.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3527-drm-amd-pp-Restore-power-profile-mode-in-auto-dpm-le.patch
new file mode 100644
index 00000000..09f61379
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3527-drm-amd-pp-Restore-power-profile-mode-in-auto-dpm-le.patch
@@ -0,0 +1,74 @@
+From bd53f31824b1d3749467b9b94d87623a73b65762 Mon Sep 17 00:00:00 2001
+From: Rex Zhu <Rex.Zhu@amd.com>
+Date: Fri, 2 Feb 2018 17:13:02 +0800
+Subject: [PATCH 3527/4131] drm/amd/pp: Restore power profile mode in auto dpm
+ level on Vega10
+
+As auto power profile mode still not support on vega10, so
+just restore default profile mode in auto dpm level.
+
+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>
+---
+ drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 10 +++++++---
+ drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 1 +
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+index 3ca2788..314f9a7 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+@@ -761,6 +761,7 @@ static int vega10_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
+ hwmgr->backend = data;
+
+ hwmgr->power_profile_mode = PP_SMC_POWER_PROFILE_VIDEO;
++ hwmgr->default_power_profile_mode = PP_SMC_POWER_PROFILE_VIDEO;
+
+ vega10_set_default_registry_data(hwmgr);
+
+@@ -4235,6 +4236,11 @@ static int vega10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
+ break;
+ case AMD_DPM_FORCED_LEVEL_AUTO:
+ ret = vega10_unforce_dpm_levels(hwmgr);
++ if (hwmgr->default_power_profile_mode != hwmgr->power_profile_mode) {
++ smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_SetWorkloadMask,
++ 1 << hwmgr->default_power_profile_mode);
++ hwmgr->power_profile_mode = hwmgr->default_power_profile_mode;
++ }
+ break;
+ case AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD:
+ case AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK:
+@@ -4258,6 +4264,7 @@ static int vega10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
+ else if (level != AMD_DPM_FORCED_LEVEL_PROFILE_PEAK && hwmgr->dpm_level == AMD_DPM_FORCED_LEVEL_PROFILE_PEAK)
+ vega10_set_fan_control_mode(hwmgr, AMD_FAN_CTRL_AUTO);
+ }
++
+ return ret;
+ }
+
+@@ -5075,9 +5082,6 @@ static int vega10_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, ui
+ uint8_t use_rlc_busy;
+ uint8_t min_active_level;
+
+- if (input[size] == PP_SMC_POWER_PROFILE_AUTO)
+- return 0; /* TO DO auto wattman feature not enabled */
+-
+ hwmgr->power_profile_mode = input[size];
+
+ smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_SetWorkloadMask,
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+index c0f9cea..2a59ee8 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+@@ -757,6 +757,7 @@ struct pp_hwmgr {
+ enum amd_pp_profile_type current_power_profile;
+ bool en_umd_pstate;
+ uint32_t power_profile_mode;
++ uint32_t default_power_profile_mode;
+ uint32_t pstate_sclk;
+ uint32_t pstate_mclk;
+ bool od_enabled;
+--
+2.7.4
+