Lines Matching refs:ucode

97 static void set_ucode_filename(struct otx_cpt_ucode *ucode,  in set_ucode_filename()  argument
100 strscpy(ucode->filename, filename, OTX_CPT_UCODE_NAME_LENGTH); in set_ucode_filename()
188 eng_grp->g->grp[eng_grp->mirror.idx].ucode[0].align_dma; in cpt_set_ucode_base()
190 dma_addr = eng_grp->ucode[0].align_dma; in cpt_set_ucode_base()
325 set_ucode_filename(&tar_info->ucode, filename); in process_tar_file()
326 memcpy(tar_info->ucode.ver_str, ucode_hdr->ver_str, in process_tar_file()
328 tar_info->ucode.ver_num = ucode_hdr->ver_num; in process_tar_file()
329 tar_info->ucode.type = ucode_type; in process_tar_file()
330 tar_info->ucode.size = ucode_size; in process_tar_file()
359 if (!is_eng_type(curr->ucode.type, ucode_type)) in get_uc_from_tar_archive()
372 if (uc_found->ucode.ver_num.nn == OTX_CPT_SE_UC_TYPE2 || in get_uc_from_tar_archive()
373 (uc_found->ucode.ver_num.nn == OTX_CPT_SE_UC_TYPE3 in get_uc_from_tar_archive()
374 && curr->ucode.ver_num.nn == OTX_CPT_SE_UC_TYPE1)) in get_uc_from_tar_archive()
392 pr_debug("Ucode filename %s\n", curr->ucode.filename); in print_tar_dbg_info()
393 pr_debug("Ucode version string %s\n", curr->ucode.ver_str); in print_tar_dbg_info()
395 curr->ucode.ver_num.nn, curr->ucode.ver_num.xx, in print_tar_dbg_info()
396 curr->ucode.ver_num.yy, curr->ucode.ver_num.zz); in print_tar_dbg_info()
397 pr_debug("Ucode type (%d) %s\n", curr->ucode.type, in print_tar_dbg_info()
398 get_ucode_type_str(curr->ucode.type)); in print_tar_dbg_info()
399 pr_debug("Ucode size %d\n", curr->ucode.size); in print_tar_dbg_info()
502 int otx_cpt_uc_supports_eng_type(struct otx_cpt_ucode *ucode, int eng_type) in otx_cpt_uc_supports_eng_type() argument
504 return is_eng_type(ucode->type, eng_type); in otx_cpt_uc_supports_eng_type()
524 eng_grp->g->grp[eng_grp->mirror.idx].ucode[0].ver_str, in print_ucode_info()
527 scnprintf(buf, size, "%s", eng_grp->ucode[0].ver_str); in print_ucode_info()
570 static void print_ucode_dbg_info(struct otx_cpt_ucode *ucode) in print_ucode_dbg_info() argument
573 pr_debug("Ucode version string %s\n", ucode->ver_str); in print_ucode_dbg_info()
574 pr_debug("Ucode version %d.%d.%d.%d\n", ucode->ver_num.nn, in print_ucode_dbg_info()
575 ucode->ver_num.xx, ucode->ver_num.yy, ucode->ver_num.zz); in print_ucode_dbg_info()
576 pr_debug("Ucode type %s\n", get_ucode_type_str(ucode->type)); in print_ucode_dbg_info()
577 pr_debug("Ucode size %d\n", ucode->size); in print_ucode_dbg_info()
578 pr_debug("Ucode virt address %16.16llx\n", (u64)ucode->align_va); in print_ucode_dbg_info()
579 pr_debug("Ucode phys address %16.16llx\n", ucode->align_dma); in print_ucode_dbg_info()
623 mirrored_grp->ucode[0].filename : in print_dbg_info()
624 grp->ucode[0].filename, in print_dbg_info()
626 mirrored_grp->ucode[0].ver_str : in print_dbg_info()
627 grp->ucode[0].ver_str); in print_dbg_info()
712 grp->engs[i].ucode = NULL; in release_engines()
841 static void ucode_unload(struct device *dev, struct otx_cpt_ucode *ucode) in ucode_unload() argument
843 if (ucode->va) { in ucode_unload()
844 dma_free_coherent(dev, ucode->size + OTX_CPT_UCODE_ALIGNMENT, in ucode_unload()
845 ucode->va, ucode->dma); in ucode_unload()
846 ucode->va = NULL; in ucode_unload()
847 ucode->align_va = NULL; in ucode_unload()
848 ucode->dma = 0; in ucode_unload()
849 ucode->align_dma = 0; in ucode_unload()
850 ucode->size = 0; in ucode_unload()
853 memset(&ucode->ver_str, 0, OTX_CPT_UCODE_VER_STR_SZ); in ucode_unload()
854 memset(&ucode->ver_num, 0, sizeof(struct otx_cpt_ucode_ver_num)); in ucode_unload()
855 set_ucode_filename(ucode, ""); in ucode_unload()
856 ucode->type = 0; in ucode_unload()
860 struct otx_cpt_ucode *ucode, in copy_ucode_to_dma_mem() argument
866 ucode->va = dma_alloc_coherent(dev, ucode->size + in copy_ucode_to_dma_mem()
868 &ucode->dma, GFP_KERNEL); in copy_ucode_to_dma_mem()
869 if (!ucode->va) { in copy_ucode_to_dma_mem()
873 ucode->align_va = PTR_ALIGN(ucode->va, OTX_CPT_UCODE_ALIGNMENT); in copy_ucode_to_dma_mem()
874 ucode->align_dma = PTR_ALIGN(ucode->dma, OTX_CPT_UCODE_ALIGNMENT); in copy_ucode_to_dma_mem()
876 memcpy((void *) ucode->align_va, (void *) ucode_data + in copy_ucode_to_dma_mem()
877 sizeof(struct otx_cpt_ucode_hdr), ucode->size); in copy_ucode_to_dma_mem()
880 for (i = 0; i < (ucode->size / 8); i++) in copy_ucode_to_dma_mem()
881 ((__be64 *)ucode->align_va)[i] = in copy_ucode_to_dma_mem()
882 cpu_to_be64(((u64 *)ucode->align_va)[i]); in copy_ucode_to_dma_mem()
884 for (i = 0; i < (ucode->size / 2); i++) in copy_ucode_to_dma_mem()
885 ((__be16 *)ucode->align_va)[i] = in copy_ucode_to_dma_mem()
886 cpu_to_be16(((u16 *)ucode->align_va)[i]); in copy_ucode_to_dma_mem()
890 static int ucode_load(struct device *dev, struct otx_cpt_ucode *ucode, in ucode_load() argument
898 set_ucode_filename(ucode, ucode_filename); in ucode_load()
899 ret = request_firmware(&fw, ucode->filename, dev); in ucode_load()
904 memcpy(ucode->ver_str, ucode_hdr->ver_str, OTX_CPT_UCODE_VER_STR_SZ); in ucode_load()
905 ucode->ver_num = ucode_hdr->ver_num; in ucode_load()
912 ucode->size = code_length * 2; in ucode_load()
913 if (!ucode->size || (fw->size < round_up(ucode->size, 16) in ucode_load()
920 ret = get_ucode_type(ucode_hdr, &ucode->type); in ucode_load()
923 ucode->filename, ucode->type); in ucode_load()
927 ret = copy_ucode_to_dma_mem(dev, ucode, fw->data); in ucode_load()
931 print_ucode_dbg_info(ucode); in ucode_load()
961 ucode_unload(dev, &eng_grp->ucode[0]); in disable_eng_grp()
967 eng_grp->engs[i].ucode = &eng_grp->ucode[0]; in disable_eng_grp()
1043 if (eng_grps->grp[i].ucode[0].type) in find_mirrored_eng_grp()
1047 if (!strncasecmp(eng_grps->grp[i].ucode[0].ver_str, in find_mirrored_eng_grp()
1048 grp->ucode[0].ver_str, in find_mirrored_eng_grp()
1190 if (!otx_cpt_uc_supports_eng_type(&eng_grp->ucode[0], in validate_1_ucode_scenario()
1194 eng_grp->ucode[0].filename, in validate_1_ucode_scenario()
1204 struct otx_cpt_ucode *ucode; in update_ucode_ptrs() local
1207 ucode = &eng_grp->g->grp[eng_grp->mirror.idx].ucode[0]; in update_ucode_ptrs()
1209 ucode = &eng_grp->ucode[0]; in update_ucode_ptrs()
1211 eng_grp->engs[0].ucode = ucode; in update_ucode_ptrs()
1247 eng_grp->ucode[i] = tar_info->ucode; in create_engine_group()
1248 ret = copy_ucode_to_dma_mem(dev, &eng_grp->ucode[i], in create_engine_group()
1251 ret = ucode_load(dev, &eng_grp->ucode[i], in create_engine_group()
1304 ucode_unload(dev, &eng_grp->ucode[0]); in create_engine_group()
1310 eng_grp->idx, mirrored_eng_grp->ucode[0].ver_str, in create_engine_group()
1314 eng_grp->idx, eng_grp->ucode[0].ver_str); in create_engine_group()
1321 ucode_unload(dev, &eng_grp->ucode[0]); in create_engine_group()