diff options
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.patch | 78 |
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 + |