intel_guc_submission.h (1751B)
1/* SPDX-License-Identifier: MIT */ 2/* 3 * Copyright © 2014-2019 Intel Corporation 4 */ 5 6#ifndef _INTEL_GUC_SUBMISSION_H_ 7#define _INTEL_GUC_SUBMISSION_H_ 8 9#include <linux/types.h> 10 11#include "intel_guc.h" 12 13struct drm_printer; 14struct intel_engine_cs; 15 16void intel_guc_submission_init_early(struct intel_guc *guc); 17int intel_guc_submission_init(struct intel_guc *guc); 18void intel_guc_submission_enable(struct intel_guc *guc); 19void intel_guc_submission_disable(struct intel_guc *guc); 20void intel_guc_submission_fini(struct intel_guc *guc); 21int intel_guc_preempt_work_create(struct intel_guc *guc); 22void intel_guc_preempt_work_destroy(struct intel_guc *guc); 23int intel_guc_submission_setup(struct intel_engine_cs *engine); 24void intel_guc_submission_print_info(struct intel_guc *guc, 25 struct drm_printer *p); 26void intel_guc_submission_print_context_info(struct intel_guc *guc, 27 struct drm_printer *p); 28void intel_guc_dump_active_requests(struct intel_engine_cs *engine, 29 struct i915_request *hung_rq, 30 struct drm_printer *m); 31void intel_guc_busyness_park(struct intel_gt *gt); 32void intel_guc_busyness_unpark(struct intel_gt *gt); 33 34bool intel_guc_virtual_engine_has_heartbeat(const struct intel_engine_cs *ve); 35 36int intel_guc_wait_for_pending_msg(struct intel_guc *guc, 37 atomic_t *wait_var, 38 bool interruptible, 39 long timeout); 40 41static inline bool intel_guc_submission_is_supported(struct intel_guc *guc) 42{ 43 return guc->submission_supported; 44} 45 46static inline bool intel_guc_submission_is_wanted(struct intel_guc *guc) 47{ 48 return guc->submission_selected; 49} 50 51static inline bool intel_guc_submission_is_used(struct intel_guc *guc) 52{ 53 return intel_guc_is_used(guc) && intel_guc_submission_is_wanted(guc); 54} 55 56#endif