aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2344-drm-amd-powerplay-add-helper-function-of-smu_get_dpm.patch
diff options
context:
space:
mode:
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.patch77
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
+