diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3008-drm-amd-powerplay-report-bootup-clock-as-max-support.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3008-drm-amd-powerplay-report-bootup-clock-as-max-support.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3008-drm-amd-powerplay-report-bootup-clock-as-max-support.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3008-drm-amd-powerplay-report-bootup-clock-as-max-support.patch new file mode 100644 index 00000000..49b79822 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3008-drm-amd-powerplay-report-bootup-clock-as-max-support.patch @@ -0,0 +1,62 @@ +From da07e7120d9105561fcfac24b5518d9cb8800cad Mon Sep 17 00:00:00 2001 +From: Evan Quan <evan.quan@amd.com> +Date: Wed, 17 Jul 2019 16:32:27 +0800 +Subject: [PATCH 3008/4256] drm/amd/powerplay: report bootup clock as max + supported on dpm disabled + +With gfxclk or uclk dpm disabled, it's reasonable to report bootup clock +as the max supported. + +Change-Id: If8aa7a912e8a34414b0e9c2b46de9b6e316fd9d7 +Signed-off-by: Evan Quan <evan.quan@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 27 +++++++++++++++++++++- + 1 file changed, 26 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +index f67206c607ca..416f9a837fa8 100644 +--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c ++++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +@@ -137,12 +137,37 @@ int smu_get_dpm_freq_range(struct smu_context *smu, enum smu_clk_type clk_type, + { + int ret = 0, clk_id = 0; + uint32_t param = 0; ++ uint32_t clock_limit; + + if (!min && !max) + return -EINVAL; + +- if (!smu_clk_dpm_is_enabled(smu, clk_type)) ++ if (!smu_clk_dpm_is_enabled(smu, clk_type)) { ++ switch (clk_type) { ++ case SMU_MCLK: ++ case SMU_UCLK: ++ clock_limit = smu->smu_table.boot_values.uclk; ++ break; ++ case SMU_GFXCLK: ++ case SMU_SCLK: ++ clock_limit = smu->smu_table.boot_values.gfxclk; ++ break; ++ case SMU_SOCCLK: ++ clock_limit = smu->smu_table.boot_values.socclk; ++ break; ++ default: ++ clock_limit = 0; ++ break; ++ } ++ ++ /* clock in Mhz unit */ ++ if (min) ++ *min = clock_limit / 100; ++ if (max) ++ *max = clock_limit / 100; ++ + return 0; ++ } + + mutex_lock(&smu->mutex); + clk_id = smu_clk_get_index(smu, clk_type); +-- +2.17.1 + |