aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4043-drm-amdgpu-swSMU-custom-UMD-pstate-peak-clock-for-na.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4043-drm-amdgpu-swSMU-custom-UMD-pstate-peak-clock-for-na.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4043-drm-amdgpu-swSMU-custom-UMD-pstate-peak-clock-for-na.patch114
1 files changed, 114 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4043-drm-amdgpu-swSMU-custom-UMD-pstate-peak-clock-for-na.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4043-drm-amdgpu-swSMU-custom-UMD-pstate-peak-clock-for-na.patch
new file mode 100644
index 00000000..b846ca25
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4043-drm-amdgpu-swSMU-custom-UMD-pstate-peak-clock-for-na.patch
@@ -0,0 +1,114 @@
+From a76bded1ce531716cf755b9e42171e638dd08356 Mon Sep 17 00:00:00 2001
+From: Kevin Wang <kevin1.wang@amd.com>
+Date: Fri, 11 Oct 2019 08:45:41 +0800
+Subject: [PATCH 4043/4256] drm/amdgpu/swSMU: custom UMD pstate peak clock for
+ navi14
+
+add navi14 umd pstate peak clock support.
+
+NAVI14_UMD_PSTATE_PEAK_XT_GFXCLK 1670 MHz
+NAVI14_UMD_PSTATE_PEAK_XTM_GFXCLK 1448 MHz
+NAVI14_UMD_PSTATE_PEAK_XLM_GFXCLK 1181 MHz
+NAVI14_UMD_PSTATE_PEAK_XTX_GFXCLK 1717 MHz
+NAVI14_UMD_PSTATE_PEAK_XL_GFXCLK 1448 MHz
+
+Signed-off-by: Kevin Wang <kevin1.wang@amd.com>
+Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
+---
+ drivers/gpu/drm/amd/powerplay/navi10_ppt.c | 53 ++++++++++++++++------
+ drivers/gpu/drm/amd/powerplay/navi10_ppt.h | 6 +++
+ 2 files changed, 45 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
+index e6490d2eb4f2..68cbcc792ec1 100644
+--- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
++++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
+@@ -1454,18 +1454,47 @@ static int navi10_set_peak_clock_by_device(struct smu_context *smu)
+ uint32_t sclk_freq = 0, uclk_freq = 0;
+ uint32_t uclk_level = 0;
+
+- switch (adev->pdev->revision) {
+- case 0xf0: /* XTX */
+- case 0xc0:
+- sclk_freq = NAVI10_PEAK_SCLK_XTX;
+- break;
+- case 0xf1: /* XT */
+- case 0xc1:
+- sclk_freq = NAVI10_PEAK_SCLK_XT;
++ switch (adev->asic_type) {
++ case CHIP_NAVI10:
++ switch (adev->pdev->revision) {
++ case 0xf0: /* XTX */
++ case 0xc0:
++ sclk_freq = NAVI10_PEAK_SCLK_XTX;
++ break;
++ case 0xf1: /* XT */
++ case 0xc1:
++ sclk_freq = NAVI10_PEAK_SCLK_XT;
++ break;
++ default: /* XL */
++ sclk_freq = NAVI10_PEAK_SCLK_XL;
++ break;
++ }
+ break;
+- default: /* XL */
+- sclk_freq = NAVI10_PEAK_SCLK_XL;
++ case CHIP_NAVI14:
++ switch (adev->pdev->revision) {
++ case 0xc7: /* XT */
++ case 0xf4:
++ sclk_freq = NAVI14_UMD_PSTATE_PEAK_XT_GFXCLK;
++ break;
++ case 0xc1: /* XTM */
++ case 0xf2:
++ sclk_freq = NAVI14_UMD_PSTATE_PEAK_XTM_GFXCLK;
++ break;
++ case 0xc3: /* XLM */
++ case 0xf3:
++ sclk_freq = NAVI14_UMD_PSTATE_PEAK_XLM_GFXCLK;
++ break;
++ case 0xc5: /* XTX */
++ case 0xf6:
++ sclk_freq = NAVI14_UMD_PSTATE_PEAK_XLM_GFXCLK;
++ break;
++ default: /* XL */
++ sclk_freq = NAVI14_UMD_PSTATE_PEAK_XL_GFXCLK;
++ break;
++ }
+ break;
++ default:
++ return -EINVAL;
+ }
+
+ ret = smu_get_dpm_level_count(smu, SMU_UCLK, &uclk_level);
+@@ -1488,10 +1517,6 @@ static int navi10_set_peak_clock_by_device(struct smu_context *smu)
+ static int navi10_set_performance_level(struct smu_context *smu, enum amd_dpm_forced_level level)
+ {
+ int ret = 0;
+- struct amdgpu_device *adev = smu->adev;
+-
+- if (adev->asic_type != CHIP_NAVI10)
+- return -EINVAL;
+
+ switch (level) {
+ case AMD_DPM_FORCED_LEVEL_PROFILE_PEAK:
+diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.h b/drivers/gpu/drm/amd/powerplay/navi10_ppt.h
+index 620ff17c2fef..a37e37c5f105 100644
+--- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.h
++++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.h
+@@ -27,6 +27,12 @@
+ #define NAVI10_PEAK_SCLK_XT (1755)
+ #define NAVI10_PEAK_SCLK_XL (1625)
+
++#define NAVI14_UMD_PSTATE_PEAK_XT_GFXCLK (1670)
++#define NAVI14_UMD_PSTATE_PEAK_XTM_GFXCLK (1448)
++#define NAVI14_UMD_PSTATE_PEAK_XLM_GFXCLK (1181)
++#define NAVI14_UMD_PSTATE_PEAK_XTX_GFXCLK (1717)
++#define NAVI14_UMD_PSTATE_PEAK_XL_GFXCLK (1448)
++
+ extern void navi10_set_ppt_funcs(struct smu_context *smu);
+
+ #endif
+--
+2.17.1
+