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 17 int xe_guc_submit_reset_prepare(struct xe_guc *guc); 18 void xe_guc_submit_reset_wait(struct xe_guc *guc); 19 void xe_guc_submit_stop(struct xe_guc *guc); 20 int xe_guc_submit_start(struct xe_guc *guc); 21 void xe_guc_submit_pause(struct xe_guc *guc); 22 void xe_guc_submit_unpause(struct xe_guc *guc); 23 int xe_guc_submit_reset_block(struct xe_guc *guc); 24 void xe_guc_submit_reset_unblock(struct xe_guc *guc); 25 int xe_guc_wait_reset_unblock(struct xe_guc *guc); 26 void xe_guc_submit_wedge(struct xe_guc *guc); 27 28 int xe_guc_read_stopped(struct xe_guc *guc); 29 int xe_guc_sched_done_handler(struct xe_guc *guc, u32 *msg, u32 len); 30 int xe_guc_deregister_done_handler(struct xe_guc *guc, u32 *msg, u32 len); 31 int xe_guc_exec_queue_reset_handler(struct xe_guc *guc, u32 *msg, u32 len); 32 int xe_guc_exec_queue_memory_cat_error_handler(struct xe_guc *guc, u32 *msg, 33 u32 len); 34 int xe_guc_exec_queue_reset_failure_handler(struct xe_guc *guc, u32 *msg, u32 len); 35 int xe_guc_error_capture_handler(struct xe_guc *guc, u32 *msg, u32 len); 36 37 void xe_guc_jobs_ring_rebase(struct xe_guc *guc); 38 39 struct xe_guc_submit_exec_queue_snapshot * 40 xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue *q); 41 void 42 xe_guc_exec_queue_snapshot_capture_delayed(struct xe_guc_submit_exec_queue_snapshot *snapshot); 43 void 44 xe_guc_exec_queue_snapshot_print(struct xe_guc_submit_exec_queue_snapshot *snapshot, 45 struct drm_printer *p); 46 void 47 xe_guc_exec_queue_snapshot_free(struct xe_guc_submit_exec_queue_snapshot *snapshot); 48 void xe_guc_submit_print(struct xe_guc *guc, struct drm_printer *p); 49 void xe_guc_register_exec_queue(struct xe_exec_queue *q, int ctx_type); 50 51 int xe_guc_contexts_hwsp_rebase(struct xe_guc *guc, void *scratch); 52 53 #endif 54