From: Frank Min <[email protected]> Add framework for MP5 firmware.
Signed-off-by: Frank Min <[email protected]> Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Hawking Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 7 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 1 + drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 1 + drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h | 2 ++ 5 files changed, 13 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c index 0b5e8373855aa..5db568fc24218 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -3753,6 +3753,9 @@ int amdgpu_psp_get_fw_type(struct amdgpu_firmware_info *ucode, case AMDGPU_UCODE_ID_ISP: *type = GFX_FW_TYPE_ISP; break; + case AMDGPU_UCODE_ID_MP5: + *type = GFX_FW_TYPE_MP5; + break; case AMDGPU_UCODE_ID_MAXIMUM: default: return -EINVAL; @@ -3806,6 +3809,10 @@ static void psp_print_fw_hdr(struct psp_context *psp, hdr = (struct common_firmware_header *)adev->pm.fw->data; amdgpu_ucode_print_smc_hdr(hdr); break; + case AMDGPU_UCODE_ID_MP5: + hdr = (struct common_firmware_header *)adev->pm.mp5_fw->data; + amdgpu_ucode_print_smc_hdr(hdr); + break; default: break; } diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c index c07f6d8d36bbd..31c10e3046b37 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c @@ -753,6 +753,8 @@ const char *amdgpu_ucode_name(enum AMDGPU_UCODE_ID ucode_id) return "RS64_MEC_P3_STACK"; case AMDGPU_UCODE_ID_ISP: return "ISP"; + case AMDGPU_UCODE_ID_MP5: + return "MP5"; default: return "UNKNOWN UCODE"; } diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h index f316776fe950a..83e5f0627369d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h @@ -477,6 +477,7 @@ union amdgpu_firmware_header { */ enum AMDGPU_UCODE_ID { AMDGPU_UCODE_ID_CAP = 0, + AMDGPU_UCODE_ID_MP5, AMDGPU_UCODE_ID_SDMA0, AMDGPU_UCODE_ID_SDMA1, AMDGPU_UCODE_ID_SDMA2, diff --git a/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h b/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h index 0803cfc445dc7..d54b9edcd5394 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h +++ b/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h @@ -322,6 +322,7 @@ enum psp_gfx_fw_type { GFX_FW_TYPE_VPE = 102, GFX_FW_TYPE_JPEG_RAM = 128, /**< JPEG Command buffer */ GFX_FW_TYPE_P2S_TABLE = 129, + GFX_FW_TYPE_MP5 = 158, /* MP5 ucode */ GFX_FW_TYPE_MAX }; diff --git a/drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h b/drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h index ed1e7385243db..64d68a905f86b 100644 --- a/drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h +++ b/drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h @@ -351,7 +351,9 @@ struct amdgpu_pm { bool sysfs_initialized; struct amdgpu_dpm dpm; const struct firmware *fw; /* SMC firmware */ + const struct firmware *mp5_fw; /* MP5 firmware */ uint32_t fw_version; + uint32_t mp5_fw_version; uint32_t pcie_gen_mask; uint32_t pcie_mlw_mask; struct amd_pp_display_configuration pm_display_cfg;/* set by dc */ -- 2.55.0
