diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4202-drm-amdgpu-powerplay-implement-interface-pp_power_pr.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4202-drm-amdgpu-powerplay-implement-interface-pp_power_pr.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4202-drm-amdgpu-powerplay-implement-interface-pp_power_pr.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4202-drm-amdgpu-powerplay-implement-interface-pp_power_pr.patch new file mode 100644 index 00000000..7986c5eb --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4202-drm-amdgpu-powerplay-implement-interface-pp_power_pr.patch @@ -0,0 +1,69 @@ +From 294d2d513a5497a9d67c88257830a27105f49de1 Mon Sep 17 00:00:00 2001 +From: Prike Liang <Prike.Liang@amd.com> +Date: Wed, 16 Oct 2019 14:28:33 +0800 +Subject: [PATCH 4202/4736] drm/amdgpu/powerplay: implement interface + pp_power_profile_mode + +implement get_power_profile_mode for getting power profile mode status. + +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 | 34 ++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c +index fa314c275a82..953e347633ec 100644 +--- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c ++++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c +@@ -640,6 +640,39 @@ static int renoir_set_watermarks_table( + return ret; + } + ++static int renoir_get_power_profile_mode(struct smu_context *smu, ++ char *buf) ++{ ++ static const char *profile_name[] = { ++ "BOOTUP_DEFAULT", ++ "3D_FULL_SCREEN", ++ "POWER_SAVING", ++ "VIDEO", ++ "VR", ++ "COMPUTE", ++ "CUSTOM"}; ++ uint32_t i, size = 0; ++ int16_t workload_type = 0; ++ ++ if (!smu->pm_enabled || !buf) ++ return -EINVAL; ++ ++ for (i = 0; i <= PP_SMC_POWER_PROFILE_CUSTOM; i++) { ++ /* ++ * Conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT ++ * Not all profile modes are supported on arcturus. ++ */ ++ workload_type = smu_workload_get_type(smu, i); ++ if (workload_type < 0) ++ continue; ++ ++ size += sprintf(buf + size, "%2d %14s%s\n", ++ i, profile_name[i], (i == smu->power_profile_mode) ? "*" : " "); ++ } ++ ++ return size; ++} ++ + 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, +@@ -658,6 +691,7 @@ static const struct pptable_funcs renoir_ppt_funcs = { + .set_performance_level = renoir_set_performance_level, + .get_dpm_clock_table = renoir_get_dpm_clock_table, + .set_watermarks_table = renoir_set_watermarks_table, ++ .get_power_profile_mode = renoir_get_power_profile_mode, + }; + + void renoir_set_ppt_funcs(struct smu_context *smu) +-- +2.17.1 + |