1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2014-2019 Intel Corporation 4 */ 5 6 #ifndef _INTEL_UC_H_ 7 #define _INTEL_UC_H_ 8 9 #include "intel_guc.h" 10 #include "intel_huc.h" 11 #include "i915_params.h" 12 13 struct intel_uc { 14 struct intel_guc guc; 15 struct intel_huc huc; 16 17 /* Snapshot of GuC log from last failed load */ 18 struct drm_i915_gem_object *load_err_log; 19 }; 20 21 void intel_uc_init_early(struct intel_uc *uc); 22 void intel_uc_driver_late_release(struct intel_uc *uc); 23 void intel_uc_init_mmio(struct intel_uc *uc); 24 void intel_uc_fetch_firmwares(struct intel_uc *uc); 25 void intel_uc_cleanup_firmwares(struct intel_uc *uc); 26 void intel_uc_sanitize(struct intel_uc *uc); 27 void intel_uc_init(struct intel_uc *uc); 28 int intel_uc_init_hw(struct intel_uc *uc); 29 void intel_uc_fini_hw(struct intel_uc *uc); 30 void intel_uc_fini(struct intel_uc *uc); 31 void intel_uc_reset_prepare(struct intel_uc *uc); 32 void intel_uc_suspend(struct intel_uc *uc); 33 void intel_uc_runtime_suspend(struct intel_uc *uc); 34 int intel_uc_resume(struct intel_uc *uc); 35 int intel_uc_runtime_resume(struct intel_uc *uc); 36 37 static inline bool intel_uc_supports_guc(struct intel_uc *uc) 38 { 39 return intel_guc_is_supported(&uc->guc); 40 } 41 42 static inline bool intel_uc_uses_guc(struct intel_uc *uc) 43 { 44 return intel_guc_is_enabled(&uc->guc); 45 } 46 47 static inline bool intel_uc_supports_guc_submission(struct intel_uc *uc) 48 { 49 return intel_guc_is_submission_supported(&uc->guc); 50 } 51 52 static inline bool intel_uc_uses_guc_submission(struct intel_uc *uc) 53 { 54 return intel_guc_is_submission_supported(&uc->guc); 55 } 56 57 static inline bool intel_uc_supports_huc(struct intel_uc *uc) 58 { 59 return intel_uc_supports_guc(uc); 60 } 61 62 static inline bool intel_uc_uses_huc(struct intel_uc *uc) 63 { 64 return intel_huc_is_enabled(&uc->huc); 65 } 66 67 #endif 68