Lines Matching refs:uc
20 static int __intel_uc_reset_hw(struct intel_uc *uc) in __intel_uc_reset_hw() argument
22 struct intel_gt *gt = uc_to_gt(uc); in __intel_uc_reset_hw()
44 static void __confirm_options(struct intel_uc *uc) in __confirm_options() argument
46 struct drm_i915_private *i915 = uc_to_gt(uc)->i915; in __confirm_options()
51 yesno(intel_uc_wants_guc(uc)), in __confirm_options()
52 yesno(intel_uc_wants_guc_submission(uc)), in __confirm_options()
53 yesno(intel_uc_wants_huc(uc))); in __confirm_options()
59 GEM_BUG_ON(intel_uc_wants_guc(uc)); in __confirm_options()
60 GEM_BUG_ON(intel_uc_wants_guc_submission(uc)); in __confirm_options()
61 GEM_BUG_ON(intel_uc_wants_huc(uc)); in __confirm_options()
65 if (!intel_uc_supports_guc(uc)) in __confirm_options()
71 !intel_uc_supports_huc(uc)) in __confirm_options()
77 !intel_uc_supports_guc_submission(uc)) in __confirm_options()
89 void intel_uc_init_early(struct intel_uc *uc) in intel_uc_init_early() argument
91 intel_guc_init_early(&uc->guc); in intel_uc_init_early()
92 intel_huc_init_early(&uc->huc); in intel_uc_init_early()
94 __confirm_options(uc); in intel_uc_init_early()
96 if (intel_uc_wants_guc(uc)) in intel_uc_init_early()
97 uc->ops = &uc_ops_on; in intel_uc_init_early()
99 uc->ops = &uc_ops_off; in intel_uc_init_early()
102 void intel_uc_driver_late_release(struct intel_uc *uc) in intel_uc_driver_late_release() argument
113 void intel_uc_init_mmio(struct intel_uc *uc) in intel_uc_init_mmio() argument
115 intel_guc_init_send_regs(&uc->guc); in intel_uc_init_mmio()
118 static void __uc_capture_load_err_log(struct intel_uc *uc) in __uc_capture_load_err_log() argument
120 struct intel_guc *guc = &uc->guc; in __uc_capture_load_err_log()
122 if (guc->log.vma && !uc->load_err_log) in __uc_capture_load_err_log()
123 uc->load_err_log = i915_gem_object_get(guc->log.vma->obj); in __uc_capture_load_err_log()
126 static void __uc_free_load_err_log(struct intel_uc *uc) in __uc_free_load_err_log() argument
128 struct drm_i915_gem_object *log = fetch_and_zero(&uc->load_err_log); in __uc_free_load_err_log()
134 void intel_uc_driver_remove(struct intel_uc *uc) in intel_uc_driver_remove() argument
136 intel_uc_fini_hw(uc); in intel_uc_driver_remove()
137 intel_uc_fini(uc); in intel_uc_driver_remove()
138 __uc_free_load_err_log(uc); in intel_uc_driver_remove()
263 static void __uc_fetch_firmwares(struct intel_uc *uc) in __uc_fetch_firmwares() argument
267 GEM_BUG_ON(!intel_uc_wants_guc(uc)); in __uc_fetch_firmwares()
269 err = intel_uc_fw_fetch(&uc->guc.fw); in __uc_fetch_firmwares()
272 if (intel_uc_wants_huc(uc)) { in __uc_fetch_firmwares()
273 drm_dbg(&uc_to_gt(uc)->i915->drm, in __uc_fetch_firmwares()
275 intel_uc_fw_change_status(&uc->huc.fw, in __uc_fetch_firmwares()
282 if (intel_uc_wants_huc(uc)) in __uc_fetch_firmwares()
283 intel_uc_fw_fetch(&uc->huc.fw); in __uc_fetch_firmwares()
286 static void __uc_cleanup_firmwares(struct intel_uc *uc) in __uc_cleanup_firmwares() argument
288 intel_uc_fw_cleanup_fetch(&uc->huc.fw); in __uc_cleanup_firmwares()
289 intel_uc_fw_cleanup_fetch(&uc->guc.fw); in __uc_cleanup_firmwares()
292 static int __uc_init(struct intel_uc *uc) in __uc_init() argument
294 struct intel_guc *guc = &uc->guc; in __uc_init()
295 struct intel_huc *huc = &uc->huc; in __uc_init()
298 GEM_BUG_ON(!intel_uc_wants_guc(uc)); in __uc_init()
300 if (!intel_uc_uses_guc(uc)) in __uc_init()
303 if (i915_inject_probe_failure(uc_to_gt(uc)->i915)) in __uc_init()
307 GEM_BUG_ON(intel_uc_uses_guc_submission(uc)); in __uc_init()
313 if (intel_uc_uses_huc(uc)) { in __uc_init()
326 static void __uc_fini(struct intel_uc *uc) in __uc_fini() argument
328 intel_huc_fini(&uc->huc); in __uc_fini()
329 intel_guc_fini(&uc->guc); in __uc_fini()
332 static int __uc_sanitize(struct intel_uc *uc) in __uc_sanitize() argument
334 struct intel_guc *guc = &uc->guc; in __uc_sanitize()
335 struct intel_huc *huc = &uc->huc; in __uc_sanitize()
337 GEM_BUG_ON(!intel_uc_supports_guc(uc)); in __uc_sanitize()
342 return __intel_uc_reset_hw(uc); in __uc_sanitize()
346 static int uc_init_wopcm(struct intel_uc *uc) in uc_init_wopcm() argument
348 struct intel_gt *gt = uc_to_gt(uc); in uc_init_wopcm()
352 u32 huc_agent = intel_uc_uses_huc(uc) ? HUC_LOADING_AGENT_GUC : 0; in uc_init_wopcm()
361 GEM_BUG_ON(!intel_uc_supports_guc(uc)); in uc_init_wopcm()
399 static bool uc_is_wopcm_locked(struct intel_uc *uc) in uc_is_wopcm_locked() argument
401 struct intel_gt *gt = uc_to_gt(uc); in uc_is_wopcm_locked()
408 static int __uc_check_hw(struct intel_uc *uc) in __uc_check_hw() argument
410 if (!intel_uc_supports_guc(uc)) in __uc_check_hw()
418 if (uc_is_wopcm_locked(uc)) in __uc_check_hw()
424 static int __uc_init_hw(struct intel_uc *uc) in __uc_init_hw() argument
426 struct drm_i915_private *i915 = uc_to_gt(uc)->i915; in __uc_init_hw()
427 struct intel_guc *guc = &uc->guc; in __uc_init_hw()
428 struct intel_huc *huc = &uc->huc; in __uc_init_hw()
431 GEM_BUG_ON(!intel_uc_supports_guc(uc)); in __uc_init_hw()
432 GEM_BUG_ON(!intel_uc_wants_guc(uc)); in __uc_init_hw()
435 ret = __uc_check_hw(uc) || in __uc_init_hw()
437 intel_uc_wants_guc_submission(uc) ? in __uc_init_hw()
442 ret = uc_init_wopcm(uc); in __uc_init_hw()
460 ret = __uc_sanitize(uc); in __uc_init_hw()
489 if (intel_uc_uses_guc_submission(uc)) in __uc_init_hw()
496 enableddisabled(intel_uc_uses_guc_submission(uc))); in __uc_init_hw()
498 if (intel_uc_uses_huc(uc)) { in __uc_init_hw()
515 __uc_capture_load_err_log(uc); in __uc_init_hw()
517 __uc_sanitize(uc); in __uc_init_hw()
531 static void __uc_fini_hw(struct intel_uc *uc) in __uc_fini_hw() argument
533 struct intel_guc *guc = &uc->guc; in __uc_fini_hw()
538 if (intel_uc_uses_guc_submission(uc)) in __uc_fini_hw()
544 __uc_sanitize(uc); in __uc_fini_hw()
553 void intel_uc_reset_prepare(struct intel_uc *uc) in intel_uc_reset_prepare() argument
555 struct intel_guc *guc = &uc->guc; in intel_uc_reset_prepare()
561 __uc_sanitize(uc); in intel_uc_reset_prepare()
564 void intel_uc_runtime_suspend(struct intel_uc *uc) in intel_uc_runtime_suspend() argument
566 struct intel_guc *guc = &uc->guc; in intel_uc_runtime_suspend()
579 void intel_uc_suspend(struct intel_uc *uc) in intel_uc_suspend() argument
581 struct intel_guc *guc = &uc->guc; in intel_uc_suspend()
587 with_intel_runtime_pm(uc_to_gt(uc)->uncore->rpm, wakeref) in intel_uc_suspend()
588 intel_uc_runtime_suspend(uc); in intel_uc_suspend()
591 static int __uc_resume(struct intel_uc *uc, bool enable_communication) in __uc_resume() argument
593 struct intel_guc *guc = &uc->guc; in __uc_resume()
614 int intel_uc_resume(struct intel_uc *uc) in intel_uc_resume() argument
620 return __uc_resume(uc, false); in intel_uc_resume()
623 int intel_uc_runtime_resume(struct intel_uc *uc) in intel_uc_runtime_resume() argument
629 return __uc_resume(uc, true); in intel_uc_runtime_resume()