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 13struct 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 21void intel_uc_init_early(struct intel_uc *uc); 22void intel_uc_driver_late_release(struct intel_uc *uc); 23void intel_uc_init_mmio(struct intel_uc *uc); 24void intel_uc_fetch_firmwares(struct intel_uc *uc); 25void intel_uc_cleanup_firmwares(struct intel_uc *uc); 26void intel_uc_sanitize(struct intel_uc *uc); 27void intel_uc_init(struct intel_uc *uc); 28int intel_uc_init_hw(struct intel_uc *uc); 29void intel_uc_fini_hw(struct intel_uc *uc); 30void intel_uc_fini(struct intel_uc *uc); 31void intel_uc_reset_prepare(struct intel_uc *uc); 32void intel_uc_suspend(struct intel_uc *uc); 33void intel_uc_runtime_suspend(struct intel_uc *uc); 34int intel_uc_resume(struct intel_uc *uc); 35int intel_uc_runtime_resume(struct intel_uc *uc); 36 37static inline bool intel_uc_supports_guc(struct intel_uc *uc) 38{ 39 return intel_guc_is_supported(&uc->guc); 40} 41 42static inline bool intel_uc_uses_guc(struct intel_uc *uc) 43{ 44 return intel_guc_is_enabled(&uc->guc); 45} 46 47static inline bool intel_uc_supports_guc_submission(struct intel_uc *uc) 48{ 49 return intel_guc_is_submission_supported(&uc->guc); 50} 51 52static inline bool intel_uc_uses_guc_submission(struct intel_uc *uc) 53{ 54 return intel_guc_is_submission_supported(&uc->guc); 55} 56 57static inline bool intel_uc_supports_huc(struct intel_uc *uc) 58{ 59 return intel_uc_supports_guc(uc); 60} 61 62static inline bool intel_uc_uses_huc(struct intel_uc *uc) 63{ 64 return intel_huc_is_enabled(&uc->huc); 65} 66 67#endif 68