aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3520-drm-amd-powerplay-using-valid-mapping-check-for-rn.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3520-drm-amd-powerplay-using-valid-mapping-check-for-rn.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3520-drm-amd-powerplay-using-valid-mapping-check-for-rn.patch78
1 files changed, 78 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3520-drm-amd-powerplay-using-valid-mapping-check-for-rn.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3520-drm-amd-powerplay-using-valid-mapping-check-for-rn.patch
new file mode 100644
index 00000000..9fa5848a
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3520-drm-amd-powerplay-using-valid-mapping-check-for-rn.patch
@@ -0,0 +1,78 @@
+From 3b894e81dd820a0f479434bb646b9e9c90c9775a Mon Sep 17 00:00:00 2001
+From: Aaron Liu <aaron.liu@amd.com>
+Date: Wed, 21 Aug 2019 16:45:52 -0500
+Subject: [PATCH 3520/4256] drm/amd/powerplay: using valid mapping check for rn
+
+Check whether the message mapping is valid
+
+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>
+---
+ drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h | 5 +++++
+ drivers/gpu/drm/amd/powerplay/renoir_ppt.c | 13 +++++++------
+ 2 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h b/drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h
+index 278cdc2c0d47..acf3db12f59f 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h
+@@ -32,6 +32,11 @@
+ #define MP1_SRAM 0x03c00004
+
+
++struct smu_12_0_cmn2aisc_mapping {
++ int valid_mapping;
++ int map_to;
++};
++
+ void smu_v12_0_set_smu_funcs(struct smu_context *smu);
+
+ #endif
+diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
+index af8bb1cc5d9a..2580383ff49b 100644
+--- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
++++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
+@@ -26,13 +26,14 @@
+ #include "soc15_common.h"
+ #include "smu_v12_0_ppsmc.h"
+ #include "smu12_driver_if.h"
++#include "smu_v12_0.h"
+ #include "renoir_ppt.h"
+
+
+ #define MSG_MAP(msg, index) \
+- [SMU_MSG_##msg] = index
++ [SMU_MSG_##msg] = {1, (index)}
+
+-static int renoir_message_map[SMU_MSG_MAX_COUNT] = {
++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),
+ MSG_MAP(GetDriverIfVersion, PPSMC_MSG_GetDriverIfVersion),
+@@ -98,16 +99,16 @@ static int renoir_message_map[SMU_MSG_MAX_COUNT] = {
+
+ static int renoir_get_smu_msg_index(struct smu_context *smc, uint32_t index)
+ {
+- int val;
++ struct smu_12_0_cmn2aisc_mapping mapping;
+
+ if (index >= SMU_MSG_MAX_COUNT)
+ return -EINVAL;
+
+- val = renoir_message_map[index];
+- if (val > PPSMC_Message_Count)
++ mapping = renoir_message_map[index];
++ if (!(mapping.valid_mapping))
+ return -EINVAL;
+
+- return val;
++ return mapping.map_to;
+ }
+
+
+--
+2.17.1
+