aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3350-drm-amd-powerplay-re-define-smu-interface-version-fo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3350-drm-amd-powerplay-re-define-smu-interface-version-fo.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3350-drm-amd-powerplay-re-define-smu-interface-version-fo.patch124
1 files changed, 124 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3350-drm-amd-powerplay-re-define-smu-interface-version-fo.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3350-drm-amd-powerplay-re-define-smu-interface-version-fo.patch
new file mode 100644
index 00000000..71dced06
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3350-drm-amd-powerplay-re-define-smu-interface-version-fo.patch
@@ -0,0 +1,124 @@
+From d21d6e2265879bd1db86620bbf3d9298c5ad7d9e Mon Sep 17 00:00:00 2001
+From: tiancyin <tianci.yin@amd.com>
+Date: Thu, 8 Aug 2019 11:57:28 +0800
+Subject: [PATCH 3350/4256] drm/amd/powerplay: re-define smu interface version
+ for smu v11
+
+[why]
+navi14 share same defination of smu interface version with navi10,
+anyone of them update the version may break the other one's
+version checking.
+
+[how]
+create different version defination, so that they can
+update their version separately.
+
+Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Signed-off-by: tiancyin <tianci.yin@amd.com>
+---
+ .../gpu/drm/amd/powerplay/inc/smu11_driver_if.h | 4 +++-
+ .../amd/powerplay/inc/smu11_driver_if_navi10.h | 4 +++-
+ drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h | 5 +++++
+ drivers/gpu/drm/amd/powerplay/navi10_ppt.c | 1 -
+ drivers/gpu/drm/amd/powerplay/smu_v11_0.c | 16 ++++++++++++++++
+ drivers/gpu/drm/amd/powerplay/vega20_ppt.c | 1 -
+ 6 files changed, 27 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if.h b/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if.h
+index 755d51f9c6a9..fdc6b7a57bc9 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if.h
+@@ -27,7 +27,9 @@
+ // *** IMPORTANT ***
+ // SMU TEAM: Always increment the interface version if
+ // any structure is changed in this file
+-#define SMU11_DRIVER_IF_VERSION 0x13
++// Be aware of that the version should be updated in
++// smu_v11_0.h, rename is also needed.
++// #define SMU11_DRIVER_IF_VERSION 0x13
+
+ #define PPTABLE_V20_SMU_VERSION 3
+
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if_navi10.h b/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if_navi10.h
+index adbbfebbb1e5..6d9e79e5bf9d 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if_navi10.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if_navi10.h
+@@ -26,7 +26,9 @@
+ // *** IMPORTANT ***
+ // SMU TEAM: Always increment the interface version if
+ // any structure is changed in this file
+-#define SMU11_DRIVER_IF_VERSION 0x33
++// Be aware of that the version should be updated in
++// smu_v11_0.h, maybe rename is also needed.
++// #define SMU11_DRIVER_IF_VERSION 0x33
+
+ #define PPTABLE_NV10_SMU_VERSION 8
+
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h b/drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h
+index fcb58012170f..97605e963c2b 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h
+@@ -25,6 +25,11 @@
+
+ #include "amdgpu_smu.h"
+
++#define SMU11_DRIVER_IF_VERSION_INV 0xFFFFFFFF
++#define SMU11_DRIVER_IF_VERSION_VG20 0x13
++#define SMU11_DRIVER_IF_VERSION_NV10 0x33
++#define SMU11_DRIVER_IF_VERSION_NV14 0x33
++
+ /* MP Apertures */
+ #define MP0_Public 0x03800000
+ #define MP0_SRAM 0x03900000
+diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
+index 96cc2f95d078..7398b281cbb0 100644
+--- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
++++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
+@@ -1610,6 +1610,5 @@ void navi10_set_ppt_funcs(struct smu_context *smu)
+ struct smu_table_context *smu_table = &smu->smu_table;
+
+ smu->ppt_funcs = &navi10_ppt_funcs;
+- smu->smc_if_version = SMU11_DRIVER_IF_VERSION;
+ smu_table->table_count = TABLE_COUNT;
+ }
+diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
+index c078bf4d522e..91dfae1a2b16 100644
+--- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
++++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
+@@ -271,6 +271,22 @@ static int smu_v11_0_check_fw_version(struct smu_context *smu)
+ smu_minor = (smu_version >> 8) & 0xff;
+ smu_debug = (smu_version >> 0) & 0xff;
+
++ switch (smu->adev->asic_type) {
++ case CHIP_VEGA20:
++ smu->smc_if_version = SMU11_DRIVER_IF_VERSION_VG20;
++ break;
++ case CHIP_NAVI10:
++ smu->smc_if_version = SMU11_DRIVER_IF_VERSION_NV10;
++ break;
++ case CHIP_NAVI14:
++ smu->smc_if_version = SMU11_DRIVER_IF_VERSION_NV14;
++ break;
++ default:
++ pr_err("smu unsuported asic type:%d.\n",smu->adev->asic_type);
++ smu->smc_if_version = SMU11_DRIVER_IF_VERSION_INV;
++ break;
++ }
++
+ /*
+ * 1. if_version mismatch is not critical as our fw is designed
+ * to be backward compatible.
+diff --git a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
+index 52c8fc9f1ff4..e28c004e0036 100644
+--- a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
++++ b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
+@@ -3173,6 +3173,5 @@ void vega20_set_ppt_funcs(struct smu_context *smu)
+ struct smu_table_context *smu_table = &smu->smu_table;
+
+ smu->ppt_funcs = &vega20_ppt_funcs;
+- smu->smc_if_version = SMU11_DRIVER_IF_VERSION;
+ smu_table->table_count = TABLE_COUNT;
+ }
+--
+2.17.1
+