aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0938-drm-amdgpu-psp_v3_1-Get-psp-fw-version-through-readi.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0938-drm-amdgpu-psp_v3_1-Get-psp-fw-version-through-readi.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0938-drm-amdgpu-psp_v3_1-Get-psp-fw-version-through-readi.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0938-drm-amdgpu-psp_v3_1-Get-psp-fw-version-through-readi.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0938-drm-amdgpu-psp_v3_1-Get-psp-fw-version-through-readi.patch
new file mode 100644
index 00000000..32df2b4b
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0938-drm-amdgpu-psp_v3_1-Get-psp-fw-version-through-readi.patch
@@ -0,0 +1,37 @@
+From 369d9edd653a0ce3893c4589dd6873a58e34b13f Mon Sep 17 00:00:00 2001
+From: Emily Deng <Emily.Deng@amd.com>
+Date: Wed, 12 Dec 2018 18:08:24 +0800
+Subject: [PATCH 0938/2940] drm/amdgpu/psp_v3_1: Get psp fw version through
+ reading register
+
+If PSP FW is running already, driver will not load PSP FW again and skip
+it. So psp fw version is not correct if reading it from FW binary file,
+need to get right version from register.
+
+Signed-off-by: Emily Deng <Emily.Deng@amd.com>
+Reviewed-by: Xiangliang Yu <Xiangliang.Yu@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/psp_v3_1.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
+index 7357fd56e614..79694ff16969 100644
+--- a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
++++ b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
+@@ -240,8 +240,11 @@ static int psp_v3_1_bootloader_load_sos(struct psp_context *psp)
+ * are already been loaded.
+ */
+ sol_reg = RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81);
+- if (sol_reg)
++ if (sol_reg) {
++ psp->sos_fw_version = RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_58);
++ printk("sos fw version = 0x%x.\n", psp->sos_fw_version);
+ return 0;
++ }
+
+ /* Wait for bootloader to signify that is ready having bit 31 of C2PMSG_35 set to 1 */
+ ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
+--
+2.17.1
+