Lines Matching refs:uc_fw

30 ____uc_fw_to_gt(struct intel_uc_fw *uc_fw, enum intel_uc_fw_type type)  in ____uc_fw_to_gt()  argument
36 return container_of(uc_fw, struct intel_gt, uc.guc.fw); in ____uc_fw_to_gt()
38 return container_of(uc_fw, struct intel_gt, uc.huc.fw); in ____uc_fw_to_gt()
40 return container_of(uc_fw, struct intel_gt, uc.gsc.fw); in ____uc_fw_to_gt()
46 static inline struct intel_gt *__uc_fw_to_gt(struct intel_uc_fw *uc_fw) in __uc_fw_to_gt() argument
48 GEM_BUG_ON(uc_fw->status == INTEL_UC_FIRMWARE_UNINITIALIZED); in __uc_fw_to_gt()
49 return ____uc_fw_to_gt(uc_fw, uc_fw->type); in __uc_fw_to_gt()
53 void intel_uc_fw_change_status(struct intel_uc_fw *uc_fw, in intel_uc_fw_change_status() argument
56 uc_fw->__status = status; in intel_uc_fw_change_status()
57 gt_dbg(__uc_fw_to_gt(uc_fw), "%s firmware -> %s\n", in intel_uc_fw_change_status()
58 intel_uc_fw_type_repr(uc_fw->type), in intel_uc_fw_change_status()
60 uc_fw->file_selected.path : intel_uc_fw_status_repr(status)); in intel_uc_fw_change_status()
260 __uc_fw_auto_select(struct drm_i915_private *i915, struct intel_uc_fw *uc_fw) in __uc_fw_auto_select() argument
274 if (uc_fw->type == INTEL_UC_FW_TYPE_GSC) in __uc_fw_auto_select()
286 GEM_BUG_ON(uc_fw->type >= ARRAY_SIZE(blobs_all)); in __uc_fw_auto_select()
287 fw_blobs = blobs_all[uc_fw->type].blobs; in __uc_fw_auto_select()
288 fw_count = blobs_all[uc_fw->type].count; in __uc_fw_auto_select()
300 if (uc_fw->file_selected.path) { in __uc_fw_auto_select()
306 if (uc_fw->file_selected.path == blob->path) in __uc_fw_auto_select()
307 uc_fw->file_selected.path = NULL; in __uc_fw_auto_select()
312 uc_fw->file_selected.path = blob->path; in __uc_fw_auto_select()
313 uc_fw->file_wanted.path = blob->path; in __uc_fw_auto_select()
314 uc_fw->file_wanted.ver.major = blob->major; in __uc_fw_auto_select()
315 uc_fw->file_wanted.ver.minor = blob->minor; in __uc_fw_auto_select()
316 uc_fw->file_wanted.ver.patch = blob->patch; in __uc_fw_auto_select()
317 uc_fw->has_gsc_headers = blob->has_gsc_headers; in __uc_fw_auto_select()
322 if (!found && uc_fw->file_selected.path) { in __uc_fw_auto_select()
324 uc_fw->file_selected.path = NULL; in __uc_fw_auto_select()
452 static void __uc_fw_user_override(struct drm_i915_private *i915, struct intel_uc_fw *uc_fw) in __uc_fw_user_override() argument
456 switch (uc_fw->type) { in __uc_fw_user_override()
469 uc_fw->file_selected.path = path; in __uc_fw_user_override()
470 uc_fw->user_overridden = true; in __uc_fw_user_override()
494 void intel_uc_fw_init_early(struct intel_uc_fw *uc_fw, in intel_uc_fw_init_early() argument
498 struct intel_gt *gt = ____uc_fw_to_gt(uc_fw, type); in intel_uc_fw_init_early()
506 GEM_BUG_ON(uc_fw->status); in intel_uc_fw_init_early()
507 GEM_BUG_ON(uc_fw->file_selected.path); in intel_uc_fw_init_early()
509 uc_fw->type = type; in intel_uc_fw_init_early()
510 uc_fw->needs_ggtt_mapping = needs_ggtt_mapping; in intel_uc_fw_init_early()
515 intel_uc_fw_change_status(uc_fw, INTEL_UC_FIRMWARE_NOT_SUPPORTED); in intel_uc_fw_init_early()
519 __uc_fw_auto_select(i915, uc_fw); in intel_uc_fw_init_early()
520 __uc_fw_user_override(i915, uc_fw); in intel_uc_fw_init_early()
523 intel_uc_fw_change_status(uc_fw, uc_fw->file_selected.path ? *uc_fw->file_selected.path ? in intel_uc_fw_init_early()
529 static void __force_fw_fetch_failures(struct intel_uc_fw *uc_fw, int e) in __force_fw_fetch_failures() argument
531 struct drm_i915_private *i915 = __uc_fw_to_gt(uc_fw)->i915; in __force_fw_fetch_failures()
536 uc_fw->file_selected.path = "<invalid>"; in __force_fw_fetch_failures()
537 uc_fw->user_overridden = user; in __force_fw_fetch_failures()
540 uc_fw->file_wanted.ver.major += 1; in __force_fw_fetch_failures()
541 uc_fw->file_wanted.ver.minor = 0; in __force_fw_fetch_failures()
542 uc_fw->user_overridden = user; in __force_fw_fetch_failures()
545 uc_fw->file_wanted.ver.minor += 1; in __force_fw_fetch_failures()
546 uc_fw->user_overridden = user; in __force_fw_fetch_failures()
547 } else if (uc_fw->file_wanted.ver.major && in __force_fw_fetch_failures()
550 uc_fw->file_wanted.ver.major -= 1; in __force_fw_fetch_failures()
551 uc_fw->file_wanted.ver.minor = 0; in __force_fw_fetch_failures()
552 uc_fw->user_overridden = user; in __force_fw_fetch_failures()
553 } else if (uc_fw->file_wanted.ver.minor && in __force_fw_fetch_failures()
556 uc_fw->file_wanted.ver.minor -= 1; in __force_fw_fetch_failures()
557 uc_fw->user_overridden = user; in __force_fw_fetch_failures()
560 uc_fw->file_wanted.ver.major = 0; in __force_fw_fetch_failures()
561 uc_fw->file_wanted.ver.minor = 0; in __force_fw_fetch_failures()
562 uc_fw->user_overridden = true; in __force_fw_fetch_failures()
574 static void guc_read_css_info(struct intel_uc_fw *uc_fw, struct uc_css_header *css) in guc_read_css_info() argument
576 struct intel_guc *guc = container_of(uc_fw, struct intel_guc, fw); in guc_read_css_info()
592 if (uc_fw->file_selected.ver.major >= 70) { in guc_read_css_info()
593 if (uc_fw->file_selected.ver.minor >= 6) { in guc_read_css_info()
596 } else if (uc_fw->file_selected.ver.minor >= 3) { in guc_read_css_info()
607 } else if (uc_fw->file_selected.ver.major >= 69) { in guc_read_css_info()
619 uc_fw->private_data_size = css->private_data_size; in guc_read_css_info()
624 struct intel_uc_fw *uc_fw) in __check_ccs_header() argument
632 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_selected.path, in __check_ccs_header()
644 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_selected.path, in __check_ccs_header()
650 uc_fw->ucode_size = (css->size_dw - css->header_size_dw) * sizeof(u32); in __check_ccs_header()
653 uc_fw->rsa_size = css->key_size_dw * sizeof(u32); in __check_ccs_header()
656 size = sizeof(struct uc_css_header) + uc_fw->ucode_size + uc_fw->rsa_size; in __check_ccs_header()
659 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_selected.path, in __check_ccs_header()
665 size = __intel_uc_fw_get_upload_size(uc_fw); in __check_ccs_header()
668 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_selected.path, in __check_ccs_header()
673 uc_unpack_css_version(&uc_fw->file_selected.ver, css->sw_version); in __check_ccs_header()
675 if (uc_fw->type == INTEL_UC_FW_TYPE_GUC) in __check_ccs_header()
676 guc_read_css_info(uc_fw, css); in __check_ccs_header()
683 struct intel_uc_fw *uc_fw) in check_gsc_manifest() argument
685 switch (uc_fw->type) { in check_gsc_manifest()
687 intel_huc_fw_get_binary_info(uc_fw, fw->data, fw->size); in check_gsc_manifest()
690 intel_gsc_fw_get_binary_info(uc_fw, fw->data, fw->size); in check_gsc_manifest()
693 MISSING_CASE(uc_fw->type); in check_gsc_manifest()
697 if (uc_fw->dma_start_offset) { in check_gsc_manifest()
698 u32 delta = uc_fw->dma_start_offset; in check_gsc_manifest()
700 __check_ccs_header(gt, fw->data + delta, fw->size - delta, uc_fw); in check_gsc_manifest()
708 struct intel_uc_fw *uc_fw) in check_ccs_header() argument
710 return __check_ccs_header(gt, fw->data, fw->size, uc_fw); in check_ccs_header()
718 static int guc_check_version_range(struct intel_uc_fw *uc_fw) in guc_check_version_range() argument
720 struct intel_guc *guc = container_of(uc_fw, struct intel_guc, fw); in guc_check_version_range()
721 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in guc_check_version_range()
729 if (!is_ver_8bit(&uc_fw->file_selected.ver)) { in guc_check_version_range()
731 intel_uc_fw_type_repr(uc_fw->type), in guc_check_version_range()
732 uc_fw->file_selected.ver.major, in guc_check_version_range()
733 uc_fw->file_selected.ver.minor, in guc_check_version_range()
734 uc_fw->file_selected.ver.patch); in guc_check_version_range()
740 intel_uc_fw_type_repr(uc_fw->type), in guc_check_version_range()
752 struct intel_uc_fw *uc_fw) in check_fw_header() argument
756 if (uc_fw->has_gsc_headers) in check_fw_header()
757 err = check_gsc_manifest(gt, fw, uc_fw); in check_fw_header()
759 err = check_ccs_header(gt, fw, uc_fw); in check_fw_header()
766 static int try_firmware_load(struct intel_uc_fw *uc_fw, const struct firmware **fw) in try_firmware_load() argument
768 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in try_firmware_load()
772 err = firmware_request_nowarn(fw, uc_fw->file_selected.path, dev); in try_firmware_load()
777 if (uc_fw->needs_ggtt_mapping && (*fw)->size > INTEL_UC_RSVD_GGTT_PER_FW) { in try_firmware_load()
779 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_selected.path, in try_firmware_load()
825 int intel_uc_check_file_version(struct intel_uc_fw *uc_fw, bool *old_ver) in intel_uc_check_file_version() argument
827 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in intel_uc_check_file_version()
828 struct intel_uc_fw_file *wanted = &uc_fw->file_wanted; in intel_uc_check_file_version()
829 struct intel_uc_fw_file *selected = &uc_fw->file_selected; in intel_uc_check_file_version()
837 if (IS_METEORLAKE(gt->i915) && uc_fw->type == INTEL_UC_FW_TYPE_HUC) { in intel_uc_check_file_version()
849 intel_uc_fw_type_repr(uc_fw->type), selected->path, in intel_uc_check_file_version()
852 if (!intel_uc_fw_is_overridden(uc_fw)) in intel_uc_check_file_version()
873 int intel_uc_fw_fetch(struct intel_uc_fw *uc_fw) in intel_uc_fw_fetch() argument
875 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in intel_uc_fw_fetch()
884 GEM_BUG_ON(!intel_uc_fw_is_enabled(uc_fw)); in intel_uc_fw_fetch()
890 __force_fw_fetch_failures(uc_fw, -EINVAL); in intel_uc_fw_fetch()
891 __force_fw_fetch_failures(uc_fw, -ESTALE); in intel_uc_fw_fetch()
893 err = try_firmware_load(uc_fw, &fw); in intel_uc_fw_fetch()
894 memcpy(&file_ideal, &uc_fw->file_wanted, sizeof(file_ideal)); in intel_uc_fw_fetch()
897 if (err && intel_uc_fw_is_overridden(uc_fw)) in intel_uc_fw_fetch()
903 __uc_fw_auto_select(i915, uc_fw); in intel_uc_fw_fetch()
904 if (!uc_fw->file_selected.path) { in intel_uc_fw_fetch()
909 uc_fw->file_selected.path = file_ideal.path; in intel_uc_fw_fetch()
912 memcpy(&uc_fw->file_wanted, &file_ideal, sizeof(uc_fw->file_wanted)); in intel_uc_fw_fetch()
916 err = try_firmware_load(uc_fw, &fw); in intel_uc_fw_fetch()
922 err = check_fw_header(gt, fw, uc_fw); in intel_uc_fw_fetch()
926 if (uc_fw->type == INTEL_UC_FW_TYPE_GUC) { in intel_uc_fw_fetch()
927 err = guc_check_version_range(uc_fw); in intel_uc_fw_fetch()
932 err = intel_uc_check_file_version(uc_fw, &old_ver); in intel_uc_fw_fetch()
936 if (old_ver && uc_fw->file_selected.ver.major) { in intel_uc_fw_fetch()
938 memcpy(&uc_fw->file_wanted, &file_ideal, sizeof(uc_fw->file_wanted)); in intel_uc_fw_fetch()
941 intel_uc_fw_type_repr(uc_fw->type), in intel_uc_fw_fetch()
942 uc_fw->file_wanted.path, in intel_uc_fw_fetch()
943 uc_fw->file_wanted.ver.major, in intel_uc_fw_fetch()
944 uc_fw->file_wanted.ver.minor, in intel_uc_fw_fetch()
945 uc_fw->file_wanted.ver.patch, in intel_uc_fw_fetch()
946 uc_fw->file_selected.path, in intel_uc_fw_fetch()
947 uc_fw->file_selected.ver.major, in intel_uc_fw_fetch()
948 uc_fw->file_selected.ver.minor, in intel_uc_fw_fetch()
949 uc_fw->file_selected.ver.patch); in intel_uc_fw_fetch()
967 uc_fw->obj = obj; in intel_uc_fw_fetch()
968 uc_fw->size = fw->size; in intel_uc_fw_fetch()
969 intel_uc_fw_change_status(uc_fw, INTEL_UC_FIRMWARE_AVAILABLE); in intel_uc_fw_fetch()
975 intel_uc_fw_change_status(uc_fw, err == -ENOENT ? in intel_uc_fw_fetch()
980 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_selected.path, ERR_PTR(err)); in intel_uc_fw_fetch()
982 intel_uc_fw_type_repr(uc_fw->type), INTEL_UC_FIRMWARE_URL); in intel_uc_fw_fetch()
988 static u32 uc_fw_ggtt_offset(struct intel_uc_fw *uc_fw) in uc_fw_ggtt_offset() argument
990 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in uc_fw_ggtt_offset()
992 struct drm_mm_node *node = &ggtt->uc_fw; in uc_fw_ggtt_offset()
993 u32 offset = uc_fw->type * INTEL_UC_RSVD_GGTT_PER_FW; in uc_fw_ggtt_offset()
1010 GEM_BUG_ON(offset + uc_fw->obj->base.size > node->size); in uc_fw_ggtt_offset()
1011 GEM_BUG_ON(uc_fw->obj->base.size > INTEL_UC_RSVD_GGTT_PER_FW); in uc_fw_ggtt_offset()
1016 static void uc_fw_bind_ggtt(struct intel_uc_fw *uc_fw) in uc_fw_bind_ggtt() argument
1018 struct drm_i915_gem_object *obj = uc_fw->obj; in uc_fw_bind_ggtt()
1019 struct i915_ggtt *ggtt = __uc_fw_to_gt(uc_fw)->ggtt; in uc_fw_bind_ggtt()
1020 struct i915_vma_resource *vma_res = &uc_fw->vma_res; in uc_fw_bind_ggtt()
1023 if (!uc_fw->needs_ggtt_mapping) in uc_fw_bind_ggtt()
1026 vma_res->start = uc_fw_ggtt_offset(uc_fw); in uc_fw_bind_ggtt()
1051 static void uc_fw_unbind_ggtt(struct intel_uc_fw *uc_fw) in uc_fw_unbind_ggtt() argument
1053 struct i915_ggtt *ggtt = __uc_fw_to_gt(uc_fw)->ggtt; in uc_fw_unbind_ggtt()
1054 struct i915_vma_resource *vma_res = &uc_fw->vma_res; in uc_fw_unbind_ggtt()
1062 static int uc_fw_xfer(struct intel_uc_fw *uc_fw, u32 dst_offset, u32 dma_flags) in uc_fw_xfer() argument
1064 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in uc_fw_xfer()
1076 offset = uc_fw->vma_res.start + uc_fw->dma_start_offset; in uc_fw_xfer()
1090 sizeof(struct uc_css_header) + uc_fw->ucode_size); in uc_fw_xfer()
1100 intel_uc_fw_type_repr(uc_fw->type), in uc_fw_xfer()
1111 int intel_uc_fw_mark_load_failed(struct intel_uc_fw *uc_fw, int err) in intel_uc_fw_mark_load_failed() argument
1113 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in intel_uc_fw_mark_load_failed()
1115 GEM_BUG_ON(!intel_uc_fw_is_loadable(uc_fw)); in intel_uc_fw_mark_load_failed()
1118 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_selected.path, ERR_PTR(err)); in intel_uc_fw_mark_load_failed()
1119 intel_uc_fw_change_status(uc_fw, INTEL_UC_FIRMWARE_LOAD_FAIL); in intel_uc_fw_mark_load_failed()
1134 int intel_uc_fw_upload(struct intel_uc_fw *uc_fw, u32 dst_offset, u32 dma_flags) in intel_uc_fw_upload() argument
1136 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in intel_uc_fw_upload()
1140 GEM_BUG_ON(intel_uc_fw_is_loaded(uc_fw)); in intel_uc_fw_upload()
1146 if (!intel_uc_fw_is_loadable(uc_fw)) in intel_uc_fw_upload()
1150 err = uc_fw_xfer(uc_fw, dst_offset, dma_flags); in intel_uc_fw_upload()
1154 intel_uc_fw_change_status(uc_fw, INTEL_UC_FIRMWARE_TRANSFERRED); in intel_uc_fw_upload()
1158 return intel_uc_fw_mark_load_failed(uc_fw, err); in intel_uc_fw_upload()
1161 static inline bool uc_fw_need_rsa_in_memory(struct intel_uc_fw *uc_fw) in uc_fw_need_rsa_in_memory() argument
1168 return uc_fw->type == INTEL_UC_FW_TYPE_HUC || uc_fw->rsa_size > 256; in uc_fw_need_rsa_in_memory()
1171 static int uc_fw_rsa_data_create(struct intel_uc_fw *uc_fw) in uc_fw_rsa_data_create() argument
1173 struct intel_gt *gt = __uc_fw_to_gt(uc_fw); in uc_fw_rsa_data_create()
1183 if (!uc_fw_need_rsa_in_memory(uc_fw)) in uc_fw_rsa_data_create()
1195 GEM_BUG_ON(uc_fw->rsa_size > PAGE_SIZE); in uc_fw_rsa_data_create()
1208 copied = intel_uc_fw_copy_rsa(uc_fw, vaddr, vma->size); in uc_fw_rsa_data_create()
1211 if (copied < uc_fw->rsa_size) { in uc_fw_rsa_data_create()
1216 uc_fw->rsa_data = vma; in uc_fw_rsa_data_create()
1225 static void uc_fw_rsa_data_destroy(struct intel_uc_fw *uc_fw) in uc_fw_rsa_data_destroy() argument
1227 i915_vma_unpin_and_release(&uc_fw->rsa_data, 0); in uc_fw_rsa_data_destroy()
1230 int intel_uc_fw_init(struct intel_uc_fw *uc_fw) in intel_uc_fw_init() argument
1235 GEM_BUG_ON(intel_uc_fw_is_loaded(uc_fw)); in intel_uc_fw_init()
1237 if (!intel_uc_fw_is_available(uc_fw)) in intel_uc_fw_init()
1240 err = i915_gem_object_pin_pages_unlocked(uc_fw->obj); in intel_uc_fw_init()
1242 gt_dbg(__uc_fw_to_gt(uc_fw), "%s fw pin-pages failed %pe\n", in intel_uc_fw_init()
1243 intel_uc_fw_type_repr(uc_fw->type), ERR_PTR(err)); in intel_uc_fw_init()
1247 err = uc_fw_rsa_data_create(uc_fw); in intel_uc_fw_init()
1249 gt_dbg(__uc_fw_to_gt(uc_fw), "%s fw rsa data creation failed %pe\n", in intel_uc_fw_init()
1250 intel_uc_fw_type_repr(uc_fw->type), ERR_PTR(err)); in intel_uc_fw_init()
1254 uc_fw_bind_ggtt(uc_fw); in intel_uc_fw_init()
1259 i915_gem_object_unpin_pages(uc_fw->obj); in intel_uc_fw_init()
1264 void intel_uc_fw_fini(struct intel_uc_fw *uc_fw) in intel_uc_fw_fini() argument
1266 uc_fw_unbind_ggtt(uc_fw); in intel_uc_fw_fini()
1267 uc_fw_rsa_data_destroy(uc_fw); in intel_uc_fw_fini()
1269 if (i915_gem_object_has_pinned_pages(uc_fw->obj)) in intel_uc_fw_fini()
1270 i915_gem_object_unpin_pages(uc_fw->obj); in intel_uc_fw_fini()
1272 intel_uc_fw_change_status(uc_fw, INTEL_UC_FIRMWARE_AVAILABLE); in intel_uc_fw_fini()
1275 void intel_uc_fw_resume_mapping(struct intel_uc_fw *uc_fw) in intel_uc_fw_resume_mapping() argument
1277 if (!intel_uc_fw_is_available(uc_fw)) in intel_uc_fw_resume_mapping()
1280 if (!i915_gem_object_has_pinned_pages(uc_fw->obj)) in intel_uc_fw_resume_mapping()
1283 uc_fw_bind_ggtt(uc_fw); in intel_uc_fw_resume_mapping()
1292 void intel_uc_fw_cleanup_fetch(struct intel_uc_fw *uc_fw) in intel_uc_fw_cleanup_fetch() argument
1294 if (!intel_uc_fw_is_available(uc_fw)) in intel_uc_fw_cleanup_fetch()
1297 i915_gem_object_put(fetch_and_zero(&uc_fw->obj)); in intel_uc_fw_cleanup_fetch()
1299 intel_uc_fw_change_status(uc_fw, INTEL_UC_FIRMWARE_SELECTED); in intel_uc_fw_cleanup_fetch()
1311 size_t intel_uc_fw_copy_rsa(struct intel_uc_fw *uc_fw, void *dst, u32 max_len) in intel_uc_fw_copy_rsa() argument
1313 struct intel_memory_region *mr = uc_fw->obj->mm.region; in intel_uc_fw_copy_rsa()
1314 u32 size = min_t(u32, uc_fw->rsa_size, max_len); in intel_uc_fw_copy_rsa()
1315 u32 offset = uc_fw->dma_start_offset + sizeof(struct uc_css_header) + uc_fw->ucode_size; in intel_uc_fw_copy_rsa()
1321 GEM_BUG_ON(!intel_uc_fw_is_available(uc_fw)); in intel_uc_fw_copy_rsa()
1325 if (i915_gem_object_has_struct_page(uc_fw->obj)) { in intel_uc_fw_copy_rsa()
1328 for_each_sgt_page(page, iter, uc_fw->obj->mm.pages) { in intel_uc_fw_copy_rsa()
1351 for_each_sgt_daddr(addr, iter, uc_fw->obj->mm.pages) { in intel_uc_fw_copy_rsa()
1384 void intel_uc_fw_dump(const struct intel_uc_fw *uc_fw, struct drm_printer *p) in intel_uc_fw_dump() argument
1389 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_selected.path); in intel_uc_fw_dump()
1390 if (uc_fw->file_selected.path != uc_fw->file_wanted.path) in intel_uc_fw_dump()
1392 intel_uc_fw_type_repr(uc_fw->type), uc_fw->file_wanted.path); in intel_uc_fw_dump()
1394 intel_uc_fw_status_repr(uc_fw->status)); in intel_uc_fw_dump()
1396 if (uc_fw->file_selected.ver.major < uc_fw->file_wanted.ver.major) in intel_uc_fw_dump()
1398 else if ((uc_fw->file_selected.ver.major == uc_fw->file_wanted.ver.major) && in intel_uc_fw_dump()
1399 (uc_fw->file_selected.ver.minor < uc_fw->file_wanted.ver.minor)) in intel_uc_fw_dump()
1401 else if ((uc_fw->file_selected.ver.major == uc_fw->file_wanted.ver.major) && in intel_uc_fw_dump()
1402 (uc_fw->file_selected.ver.minor == uc_fw->file_wanted.ver.minor) && in intel_uc_fw_dump()
1403 (uc_fw->file_selected.ver.patch < uc_fw->file_wanted.ver.patch)) in intel_uc_fw_dump()
1410 uc_fw->file_wanted.ver.major, in intel_uc_fw_dump()
1411 uc_fw->file_wanted.ver.minor, in intel_uc_fw_dump()
1412 uc_fw->file_wanted.ver.patch, in intel_uc_fw_dump()
1413 uc_fw->file_selected.ver.major, in intel_uc_fw_dump()
1414 uc_fw->file_selected.ver.minor, in intel_uc_fw_dump()
1415 uc_fw->file_selected.ver.patch); in intel_uc_fw_dump()
1418 uc_fw->file_selected.ver.major, in intel_uc_fw_dump()
1419 uc_fw->file_selected.ver.minor, in intel_uc_fw_dump()
1420 uc_fw->file_selected.ver.patch); in intel_uc_fw_dump()
1421 drm_printf(p, "\tuCode: %u bytes\n", uc_fw->ucode_size); in intel_uc_fw_dump()
1422 drm_printf(p, "\tRSA: %u bytes\n", uc_fw->rsa_size); in intel_uc_fw_dump()