1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2022 Intel Corporation 4 */ 5 6 #ifndef _XE_GUC_SUBMIT_H_ 7 #define _XE_GUC_SUBMIT_H_ 8 9 #include <linux/types.h> 10 11 struct drm_printer; 12 struct xe_exec_queue; 13 struct xe_guc; 14 15 int xe_guc_submit_init(struct xe_guc *guc, unsigned int num_ids); 16 int xe_guc_submit_enable(struct xe_guc *guc); 17 void xe_guc_submit_disable(struct xe_guc *guc); 18 19 int xe_guc_submit_reset_prepare(struct xe_guc *guc); 20 void xe_guc_submit_reset_wait(struct xe_guc *guc); 21 void xe_guc_submit_stop(struct xe_guc *guc); 22 int xe_guc_submit_start(struct xe_guc *guc); 23 void xe_guc_submit_wedge(struct xe_guc *guc); 24 25 int xe_guc_read_stopped(struct xe_guc *guc); 26 int xe_guc_sched_done_handler(struct xe_guc *guc, u32 *msg, u32 len); 27 int xe_guc_deregister_done_handler(struct xe_guc *guc, u32 *msg, u32 len); 28 int xe_guc_exec_queue_reset_handler(struct xe_guc *guc, u32 *msg, u32 len); 29 int xe_guc_exec_queue_memory_cat_error_handler(struct xe_guc *guc, u32 *msg, 30 u32 len); 31 int xe_guc_exec_queue_reset_failure_handler(struct xe_guc *guc, u32 *msg, u32 len); 32 int xe_guc_error_capture_handler(struct xe_guc *guc, u32 *msg, u32 len); 33 34 struct xe_guc_submit_exec_queue_snapshot * 35 xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue *q); 36 void 37 xe_guc_exec_queue_snapshot_capture_delayed(struct xe_guc_submit_exec_queue_snapshot *snapshot); 38 void 39 xe_guc_exec_queue_snapshot_print(struct xe_guc_submit_exec_queue_snapshot *snapshot, 40 struct drm_printer *p); 41 void 42 xe_guc_exec_queue_snapshot_free(struct xe_guc_submit_exec_queue_snapshot *snapshot); 43 void xe_guc_submit_print(struct xe_guc *guc, struct drm_printer *p); 44 45 #endif 46