diff options
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5549-drm-amd-powerplay-translate-power_profile-mode-to-pp.patch')
-rw-r--r-- | meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5549-drm-amd-powerplay-translate-power_profile-mode-to-pp.patch | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5549-drm-amd-powerplay-translate-power_profile-mode-to-pp.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5549-drm-amd-powerplay-translate-power_profile-mode-to-pp.patch deleted file mode 100644 index 2c262aeb..00000000 --- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5549-drm-amd-powerplay-translate-power_profile-mode-to-pp.patch +++ /dev/null @@ -1,97 +0,0 @@ -From fe06020354ac862136b95365cb4aa9a5a7233eb4 Mon Sep 17 00:00:00 2001 -From: Evan Quan <evan.quan@amd.com> -Date: Wed, 10 Oct 2018 15:00:28 +0800 -Subject: [PATCH 5549/5725] drm/amd/powerplay: translate power_profile mode to - pplib workload type - -Correctly translate the power profile specified by user to workload -type accepted by SMU fw. - -Change-Id: I4de525d6a84a80c2fcfc1a6de2a465a7a07868a4 -Signed-off-by: Evan Quan <evan.quan@amd.com> -Reviewed-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c | 42 ++++++++++++++++++++-- - 1 file changed, 39 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c -index 958af7b..b4dbbb7 100644 ---- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c -+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c -@@ -3175,6 +3175,34 @@ static int vega20_power_off_asic(struct pp_hwmgr *hwmgr) - return result; - } - -+static int conv_power_profile_to_pplib_workload(int power_profile) -+{ -+ int pplib_workload = 0; -+ -+ switch (power_profile) { -+ case PP_SMC_POWER_PROFILE_FULLSCREEN3D: -+ pplib_workload = WORKLOAD_PPLIB_FULL_SCREEN_3D_BIT; -+ break; -+ case PP_SMC_POWER_PROFILE_POWERSAVING: -+ pplib_workload = WORKLOAD_PPLIB_POWER_SAVING_BIT; -+ break; -+ case PP_SMC_POWER_PROFILE_VIDEO: -+ pplib_workload = WORKLOAD_PPLIB_VIDEO_BIT; -+ break; -+ case PP_SMC_POWER_PROFILE_VR: -+ pplib_workload = WORKLOAD_PPLIB_VR_BIT; -+ break; -+ case PP_SMC_POWER_PROFILE_COMPUTE: -+ pplib_workload = WORKLOAD_PPLIB_COMPUTE_BIT; -+ break; -+ case PP_SMC_POWER_PROFILE_CUSTOM: -+ pplib_workload = WORKLOAD_PPLIB_CUSTOM_BIT; -+ break; -+ } -+ -+ return pplib_workload; -+} -+ - static int vega20_get_power_profile_mode(struct pp_hwmgr *hwmgr, char *buf) - { - DpmActivityMonitorCoeffInt_t activity_monitor; -@@ -3210,7 +3238,7 @@ static int vega20_get_power_profile_mode(struct pp_hwmgr *hwmgr, char *buf) - - for (i = 0; i <= PP_SMC_POWER_PROFILE_CUSTOM; i++) { - /* conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT */ -- workload_type = i + 1; -+ workload_type = conv_power_profile_to_pplib_workload(i); - result = vega20_get_activity_monitor_coeff(hwmgr, - (uint8_t *)(&activity_monitor), workload_type); - PP_ASSERT_WITH_CODE(!result, -@@ -3283,10 +3311,15 @@ static int vega20_get_power_profile_mode(struct pp_hwmgr *hwmgr, char *buf) - static int vega20_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, uint32_t size) - { - DpmActivityMonitorCoeffInt_t activity_monitor; -- int result = 0; -+ int workload_type, result = 0; - - hwmgr->power_profile_mode = input[size]; - -+ if (hwmgr->power_profile_mode > PP_SMC_POWER_PROFILE_CUSTOM) { -+ pr_err("Invalid power profile mode %d\n", hwmgr->power_profile_mode); -+ return -EINVAL; -+ } -+ - if (hwmgr->power_profile_mode == PP_SMC_POWER_PROFILE_CUSTOM) { - if (size < 10) - return -EINVAL; -@@ -3353,8 +3386,11 @@ static int vega20_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, ui - return result); - } - -+ /* conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT */ -+ workload_type = -+ conv_power_profile_to_pplib_workload(hwmgr->power_profile_mode); - smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_SetWorkloadMask, -- 1 << hwmgr->power_profile_mode); -+ 1 << workload_type); - - return 0; - } --- -2.7.4 - |