diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2344-drm-amd-powerplay-add-helper-function-of-smu_get_dpm.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2344-drm-amd-powerplay-add-helper-function-of-smu_get_dpm.patch | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2344-drm-amd-powerplay-add-helper-function-of-smu_get_dpm.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2344-drm-amd-powerplay-add-helper-function-of-smu_get_dpm.patch new file mode 100644 index 00000000..23d4146d --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2344-drm-amd-powerplay-add-helper-function-of-smu_get_dpm.patch @@ -0,0 +1,77 @@ +From 9f80c1b4234541a65c7ff5bf795043973a7b7c5d Mon Sep 17 00:00:00 2001 +From: Kevin Wang <kevin1.wang@amd.com> +Date: Thu, 18 Apr 2019 18:46:04 +0800 +Subject: [PATCH 2344/2940] drm/amd/powerplay: add helper function of + smu_get_dpm_freq_range + +add this helper function to get dpm clk information (min, max); + +Signed-off-by: Kevin Wang <kevin1.wang@amd.com> +Reviewed-by: Huang Rui <ray.huang@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 36 +++++++++++++++++++ + .../gpu/drm/amd/powerplay/inc/amdgpu_smu.h | 2 ++ + 2 files changed, 38 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +index d565db4ce6d8..c37f59b3995b 100644 +--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c ++++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +@@ -60,6 +60,42 @@ int smu_get_smc_version(struct smu_context *smu, uint32_t *if_version, uint32_t + return ret; + } + ++int smu_get_dpm_freq_range(struct smu_context *smu, enum smu_clk_type clk_type, ++ uint32_t *min, uint32_t *max) ++{ ++ int ret = 0, clk_id = 0; ++ uint32_t param = 0; ++ ++ if (!min && !max) ++ return -EINVAL; ++ ++ clk_id = smu_clk_get_index(smu, clk_type); ++ if (clk_id < 0) ++ return clk_id; ++ ++ param = (clk_id & 0xffff) << 16; ++ ++ if (max) { ++ ret = smu_send_smc_msg_with_param(smu, SMU_MSG_GetMaxDpmFreq, param); ++ if (ret) ++ return ret; ++ ret = smu_read_smc_arg(smu, max); ++ if (ret) ++ return ret; ++ } ++ ++ if (min) { ++ ret = smu_send_smc_msg_with_param(smu, SMU_MSG_GetMinDpmFreq, param); ++ if (ret) ++ return ret; ++ ret = smu_read_smc_arg(smu, min); ++ if (ret) ++ return ret; ++ } ++ ++ return ret; ++} ++ + int smu_get_dpm_freq_by_index(struct smu_context *smu, enum smu_clk_type clk_type, + uint16_t level, uint32_t *value) + { +diff --git a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h +index 16d6f553ba7f..78993e4ee588 100644 +--- a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h ++++ b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h +@@ -939,4 +939,6 @@ int smu_get_dpm_freq_by_index(struct smu_context *smu, enum smu_clk_type clk_typ + uint16_t level, uint32_t *value); + int smu_get_dpm_level_count(struct smu_context *smu, enum smu_clk_type clk_type, + uint32_t *value); ++int smu_get_dpm_freq_range(struct smu_context *smu, enum smu_clk_type clk_type, ++ uint32_t *min, uint32_t *max); + #endif +-- +2.17.1 + |