diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3986-drm-amd-powerplay-add-interface-for-getting-workload.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3986-drm-amd-powerplay-add-interface-for-getting-workload.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3986-drm-amd-powerplay-add-interface-for-getting-workload.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3986-drm-amd-powerplay-add-interface-for-getting-workload.patch new file mode 100644 index 00000000..fad40f85 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3986-drm-amd-powerplay-add-interface-for-getting-workload.patch @@ -0,0 +1,64 @@ +From 6caa4d083c60a0437a58a452880f1e4533b3ebb4 Mon Sep 17 00:00:00 2001 +From: Prike Liang <Prike.Liang@amd.com> +Date: Mon, 23 Sep 2019 14:42:36 +0800 +Subject: [PATCH 3986/4256] drm/amd/powerplay: add interface for getting + workload type + +The workload type was got from the input of power profile mode. + +Signed-off-by: Prike Liang <Prike.Liang@amd.com> +Reviewed-by: Evan Quan <evan.quan@amd.com> +--- + drivers/gpu/drm/amd/powerplay/renoir_ppt.c | 29 ++++++++++++++++++++++ + 1 file changed, 29 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c +index 668b07985ea0..11d57e26b855 100644 +--- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c ++++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c +@@ -364,6 +364,34 @@ static int renoir_unforce_dpm_levels(struct smu_context *smu) { + return ret; + } + ++static int renoir_get_workload_type(struct smu_context *smu, uint32_t profile) ++{ ++ ++ uint32_t pplib_workload = 0; ++ ++ switch (profile) { ++ case PP_SMC_POWER_PROFILE_FULLSCREEN3D: ++ pplib_workload = WORKLOAD_PPLIB_FULL_SCREEN_3D_BIT; ++ break; ++ case PP_SMC_POWER_PROFILE_CUSTOM: ++ pplib_workload = WORKLOAD_PPLIB_COUNT; ++ 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; ++ default: ++ return -EINVAL; ++ } ++ ++ return pplib_workload; ++} ++ + static const struct pptable_funcs renoir_ppt_funcs = { + .get_smu_msg_index = renoir_get_smu_msg_index, + .get_smu_table_index = renoir_get_smu_table_index, +@@ -375,6 +403,7 @@ static const struct pptable_funcs renoir_ppt_funcs = { + .dpm_set_uvd_enable = renoir_dpm_set_uvd_enable, + .force_dpm_limit_value = renoir_force_dpm_limit_value, + .unforce_dpm_levels = renoir_unforce_dpm_levels, ++ .get_workload_type = renoir_get_workload_type, + }; + + void renoir_set_ppt_funcs(struct smu_context *smu) +-- +2.17.1 + |