diff options
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.patch | 74 |
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 + |