drm/amdgpu: Add PSP public function to load a list of FWs
v1: Adds a function to load a list of FWs as passed by the caller. This is needed as only a select need to loaded for some use cases. v2: Omit unrelated change, remove info log, fix return value when count is 0 Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Feifei Xu <Feifei.Xu@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -2227,6 +2227,22 @@ static bool fw_load_skip_check(struct psp_context *psp,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int psp_load_fw_list(struct psp_context *psp,
|
||||||
|
struct amdgpu_firmware_info **ucode_list, int ucode_count)
|
||||||
|
{
|
||||||
|
int ret = 0, i;
|
||||||
|
struct amdgpu_firmware_info *ucode;
|
||||||
|
|
||||||
|
for (i = 0; i < ucode_count; ++i) {
|
||||||
|
ucode = ucode_list[i];
|
||||||
|
psp_print_fw_hdr(psp, ucode);
|
||||||
|
ret = psp_execute_np_fw_load(psp, ucode);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static int psp_np_fw_load(struct psp_context *psp)
|
static int psp_np_fw_load(struct psp_context *psp)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|||||||
@@ -420,4 +420,7 @@ int psp_init_ta_microcode(struct psp_context *psp,
|
|||||||
const char *chip_name);
|
const char *chip_name);
|
||||||
int psp_get_fw_attestation_records_addr(struct psp_context *psp,
|
int psp_get_fw_attestation_records_addr(struct psp_context *psp,
|
||||||
uint64_t *output_ptr);
|
uint64_t *output_ptr);
|
||||||
|
|
||||||
|
int psp_load_fw_list(struct psp_context *psp,
|
||||||
|
struct amdgpu_firmware_info **ucode_list, int ucode_count);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user