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