aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3264-drm-amdgpu-extend-PSP-FW-loading-support-to-8-SDMA-i.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3264-drm-amdgpu-extend-PSP-FW-loading-support-to-8-SDMA-i.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3264-drm-amdgpu-extend-PSP-FW-loading-support-to-8-SDMA-i.patch119
1 files changed, 119 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3264-drm-amdgpu-extend-PSP-FW-loading-support-to-8-SDMA-i.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3264-drm-amdgpu-extend-PSP-FW-loading-support-to-8-SDMA-i.patch
new file mode 100644
index 00000000..9c15393a
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3264-drm-amdgpu-extend-PSP-FW-loading-support-to-8-SDMA-i.patch
@@ -0,0 +1,119 @@
+From df778354e7666f3066931e087862b6239aeee5f0 Mon Sep 17 00:00:00 2001
+From: John Clements <John.Clements@amd.com>
+Date: Thu, 1 Aug 2019 17:59:55 +0800
+Subject: [PATCH 3264/4256] drm/amdgpu: extend PSP FW loading support to 8 SDMA
+ instances
+
+Arcturus has 8 instances of SDMA. Update host to PSP interface
+to handle it.
+
+Change-Id: Id59b66eb98a4f4bef8f345499bbdaa0344cf6c49
+Signed-off-by: John Clements <John.Clements@amd.com>
+Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 27 ++++++++++++++++++++++-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 6 +++++
+ drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 11 +++++++--
+ 3 files changed, 41 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+index 0c0f3cb2b627..fb5d7b8cbd03 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+@@ -836,7 +836,6 @@ static int psp_hw_start(struct psp_context *psp)
+ "XGMI: Failed to initialize XGMI session\n");
+ }
+
+-
+ if (psp->adev->psp.ta_fw) {
+ ret = psp_ras_initialize(psp);
+ if (ret)
+@@ -857,6 +856,24 @@ static int psp_get_fw_type(struct amdgpu_firmware_info *ucode,
+ case AMDGPU_UCODE_ID_SDMA1:
+ *type = GFX_FW_TYPE_SDMA1;
+ break;
++ case AMDGPU_UCODE_ID_SDMA2:
++ *type = GFX_FW_TYPE_SDMA2;
++ break;
++ case AMDGPU_UCODE_ID_SDMA3:
++ *type = GFX_FW_TYPE_SDMA3;
++ break;
++ case AMDGPU_UCODE_ID_SDMA4:
++ *type = GFX_FW_TYPE_SDMA4;
++ break;
++ case AMDGPU_UCODE_ID_SDMA5:
++ *type = GFX_FW_TYPE_SDMA5;
++ break;
++ case AMDGPU_UCODE_ID_SDMA6:
++ *type = GFX_FW_TYPE_SDMA6;
++ break;
++ case AMDGPU_UCODE_ID_SDMA7:
++ *type = GFX_FW_TYPE_SDMA7;
++ break;
+ case AMDGPU_UCODE_ID_CP_CE:
+ *type = GFX_FW_TYPE_CP_CE;
+ break;
+@@ -985,12 +1002,20 @@ static int psp_np_fw_load(struct psp_context *psp)
+ if (ucode->ucode_id == AMDGPU_UCODE_ID_SMC &&
+ (psp_smu_reload_quirk(psp) || psp->autoload_supported))
+ continue;
++
+ if (amdgpu_sriov_vf(adev) &&
+ (ucode->ucode_id == AMDGPU_UCODE_ID_SDMA0
+ || ucode->ucode_id == AMDGPU_UCODE_ID_SDMA1
++ || ucode->ucode_id == AMDGPU_UCODE_ID_SDMA2
++ || ucode->ucode_id == AMDGPU_UCODE_ID_SDMA3
++ || ucode->ucode_id == AMDGPU_UCODE_ID_SDMA4
++ || ucode->ucode_id == AMDGPU_UCODE_ID_SDMA5
++ || ucode->ucode_id == AMDGPU_UCODE_ID_SDMA6
++ || ucode->ucode_id == AMDGPU_UCODE_ID_SDMA7
+ || ucode->ucode_id == AMDGPU_UCODE_ID_RLC_G))
+ /*skip ucode loading in SRIOV VF */
+ continue;
++
+ if (psp->autoload_supported &&
+ (ucode->ucode_id == AMDGPU_UCODE_ID_CP_MEC1_JT ||
+ ucode->ucode_id == AMDGPU_UCODE_ID_CP_MEC2_JT))
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h
+index 4f1b167a9394..b34f00d42049 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h
+@@ -271,6 +271,12 @@ union amdgpu_firmware_header {
+ enum AMDGPU_UCODE_ID {
+ AMDGPU_UCODE_ID_SDMA0 = 0,
+ AMDGPU_UCODE_ID_SDMA1,
++ AMDGPU_UCODE_ID_SDMA2,
++ AMDGPU_UCODE_ID_SDMA3,
++ AMDGPU_UCODE_ID_SDMA4,
++ AMDGPU_UCODE_ID_SDMA5,
++ AMDGPU_UCODE_ID_SDMA6,
++ AMDGPU_UCODE_ID_SDMA7,
+ AMDGPU_UCODE_ID_CP_CE,
+ AMDGPU_UCODE_ID_CP_PFP,
+ AMDGPU_UCODE_ID_CP_ME,
+diff --git a/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h b/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h
+index 5080a73a95a5..74a9fe8e0cfb 100644
+--- a/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h
++++ b/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h
+@@ -233,8 +233,15 @@ enum psp_gfx_fw_type {
+ GFX_FW_TYPE_RLCP_CAM = 46, /* RLCP CAM NV */
+ GFX_FW_TYPE_RLC_SPP_CAM_EXT = 47, /* RLC SPP CAM EXT NV */
+ GFX_FW_TYPE_RLX6_DRAM_BOOT = 48, /* RLX6 DRAM BOOT NV */
+- GFX_FW_TYPE_VCN0_RAM = 49, /* VCN_RAM NV */
+- GFX_FW_TYPE_VCN1_RAM = 50, /* VCN_RAM NV */
++ GFX_FW_TYPE_VCN0_RAM = 49, /* VCN_RAM NV + RN */
++ GFX_FW_TYPE_VCN1_RAM = 50, /* VCN_RAM NV + RN */
++ GFX_FW_TYPE_DMUB = 51, /* DMUB RN */
++ GFX_FW_TYPE_SDMA2 = 52, /* SDMA2 MI */
++ GFX_FW_TYPE_SDMA3 = 53, /* SDMA3 MI */
++ GFX_FW_TYPE_SDMA4 = 54, /* SDMA4 MI */
++ GFX_FW_TYPE_SDMA5 = 55, /* SDMA5 MI */
++ GFX_FW_TYPE_SDMA6 = 56, /* SDMA6 MI */
++ GFX_FW_TYPE_SDMA7 = 57, /* SDMA7 MI */
+ GFX_FW_TYPE_MAX
+ };
+
+--
+2.17.1
+