diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2346-drm-amd-powerplay-add-helper-function-of-smu_set_har.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2346-drm-amd-powerplay-add-helper-function-of-smu_set_har.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2346-drm-amd-powerplay-add-helper-function-of-smu_set_har.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2346-drm-amd-powerplay-add-helper-function-of-smu_set_har.patch new file mode 100644 index 00000000..e97f6940 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2346-drm-amd-powerplay-add-helper-function-of-smu_set_har.patch @@ -0,0 +1,74 @@ +From 1452963e5c0b79f060beff5540c7f2c905f9ce7e Mon Sep 17 00:00:00 2001 +From: Kevin Wang <kevin1.wang@amd.com> +Date: Mon, 22 Apr 2019 14:40:30 +0800 +Subject: [PATCH 2346/2940] drm/amd/powerplay: add helper function of + smu_set_hard_freq_range + +add this function to get dpm clock information. + +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 | 33 +++++++++++++++++++ + .../gpu/drm/amd/powerplay/inc/amdgpu_smu.h | 2 ++ + 2 files changed, 35 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +index 5404f32cc2c5..482fdad1d5f9 100644 +--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c ++++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +@@ -93,6 +93,39 @@ int smu_set_soft_freq_range(struct smu_context *smu, enum smu_clk_type clk_type, + return ret; + } + ++int smu_set_hard_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; ++ ++ if (min <= 0 && max <= 0) ++ return -EINVAL; ++ ++ clk_id = smu_clk_get_index(smu, clk_type); ++ if (clk_id < 0) ++ return clk_id; ++ ++ if (max > 0) { ++ param = (uint32_t)((clk_id << 16) | (max & 0xffff)); ++ ret = smu_send_smc_msg_with_param(smu, SMU_MSG_SetHardMaxByFreq, ++ param); ++ if (ret) ++ return ret; ++ } ++ ++ if (min > 0) { ++ param = (uint32_t)((clk_id << 16) | (min & 0xffff)); ++ ret = smu_send_smc_msg_with_param(smu, SMU_MSG_SetHardMinByFreq, ++ param); ++ if (ret) ++ return ret; ++ } ++ ++ ++ return ret; ++} ++ + int smu_get_dpm_freq_range(struct smu_context *smu, enum smu_clk_type clk_type, + uint32_t *min, uint32_t *max) + { +diff --git a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h +index 416ea7b85761..5289453f9422 100644 +--- a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h ++++ b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h +@@ -943,4 +943,6 @@ int smu_get_dpm_freq_range(struct smu_context *smu, enum smu_clk_type clk_type, + uint32_t *min, uint32_t *max); + int smu_set_soft_freq_range(struct smu_context *smu, enum smu_clk_type clk_type, + uint32_t min, uint32_t max); ++int smu_set_hard_freq_range(struct smu_context *smu, enum smu_clk_type clk_type, ++ uint32_t min, uint32_t max); + #endif +-- +2.17.1 + |