aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3521-drm-amd-powerplay-add-smu-tables-for-rn.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3521-drm-amd-powerplay-add-smu-tables-for-rn.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3521-drm-amd-powerplay-add-smu-tables-for-rn.patch88
1 files changed, 88 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3521-drm-amd-powerplay-add-smu-tables-for-rn.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3521-drm-amd-powerplay-add-smu-tables-for-rn.patch
new file mode 100644
index 00000000..a4dd52ec
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3521-drm-amd-powerplay-add-smu-tables-for-rn.patch
@@ -0,0 +1,88 @@
+From 45f01db674f732670c595bcec8c0a5d3162fb1ee Mon Sep 17 00:00:00 2001
+From: Aaron Liu <aaron.liu@amd.com>
+Date: Tue, 30 Jul 2019 10:50:44 +0800
+Subject: [PATCH 3521/4256] drm/amd/powerplay: add smu tables for rn
+
+add and map smu tables for renoir
+
+Signed-off-by: Aaron Liu <aaron.liu@amd.com>
+Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
+Reviewed-by: Evan Quan <evan.quan@amd.com>
+Reviewed-by: Kevin Wang <kevin1.wang@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ .../gpu/drm/amd/powerplay/inc/amdgpu_smu.h | 2 ++
+ drivers/gpu/drm/amd/powerplay/renoir_ppt.c | 27 +++++++++++++++++++
+ 2 files changed, 29 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
+index 7b352c5a451e..4d156e5ab2e8 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
+@@ -231,6 +231,8 @@ enum smu_table_id
+ {
+ SMU_TABLE_PPTABLE = 0,
+ SMU_TABLE_WATERMARKS,
++ SMU_TABLE_CUSTOM_DPM,
++ SMU_TABLE_DPMCLOCKS,
+ SMU_TABLE_AVFS,
+ SMU_TABLE_AVFS_PSM_DEBUG,
+ SMU_TABLE_AVFS_FUSE_OVERRIDE,
+diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
+index 2580383ff49b..7c3dc150eaa3 100644
+--- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
++++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
+@@ -33,6 +33,12 @@
+ #define MSG_MAP(msg, index) \
+ [SMU_MSG_##msg] = {1, (index)}
+
++#define TAB_MAP_VALID(tab) \
++ [SMU_TABLE_##tab] = {1, TABLE_##tab}
++
++#define TAB_MAP_INVALID(tab) \
++ [SMU_TABLE_##tab] = {0, TABLE_##tab}
++
+ static struct smu_12_0_cmn2aisc_mapping renoir_message_map[SMU_MSG_MAX_COUNT] = {
+ MSG_MAP(TestMessage, PPSMC_MSG_TestMessage),
+ MSG_MAP(GetSmuVersion, PPSMC_MSG_GetSmuVersion),
+@@ -97,6 +103,13 @@ static struct smu_12_0_cmn2aisc_mapping renoir_message_map[SMU_MSG_MAX_COUNT] =
+ MSG_MAP(SetHardMinFclkByFreq, PPSMC_MSG_SetHardMinFclkByFreq),
+ };
+
++static struct smu_12_0_cmn2aisc_mapping renoir_table_map[SMU_TABLE_COUNT] = {
++ TAB_MAP_VALID(WATERMARKS),
++ TAB_MAP_INVALID(CUSTOM_DPM),
++ TAB_MAP_VALID(DPMCLOCKS),
++ TAB_MAP_VALID(SMU_METRICS),
++};
++
+ static int renoir_get_smu_msg_index(struct smu_context *smc, uint32_t index)
+ {
+ struct smu_12_0_cmn2aisc_mapping mapping;
+@@ -111,9 +124,23 @@ static int renoir_get_smu_msg_index(struct smu_context *smc, uint32_t index)
+ return mapping.map_to;
+ }
+
++static int renoir_get_smu_table_index(struct smu_context *smc, uint32_t index)
++{
++ struct smu_12_0_cmn2aisc_mapping mapping;
++
++ if (index >= SMU_TABLE_COUNT)
++ return -EINVAL;
++
++ mapping = renoir_table_map[index];
++ if (!(mapping.valid_mapping))
++ return -EINVAL;
++
++ return mapping.map_to;
++}
+
+ static const struct pptable_funcs renoir_ppt_funcs = {
+ .get_smu_msg_index = renoir_get_smu_msg_index,
++ .get_smu_table_index = renoir_get_smu_table_index,
+ .set_power_state = NULL,
+ };
+
+--
+2.17.1
+