1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2014 Intel Corporation
4  */
5 
6 #ifndef __INTEL_EXECLISTS_SUBMISSION_H__
7 #define __INTEL_EXECLISTS_SUBMISSION_H__
8 
9 #include <linux/llist.h>
10 #include <linux/types.h>
11 
12 struct drm_printer;
13 
14 struct i915_request;
15 struct intel_context;
16 struct intel_engine_cs;
17 struct intel_gt;
18 
19 enum {
20 	INTEL_CONTEXT_SCHEDULE_IN = 0,
21 	INTEL_CONTEXT_SCHEDULE_OUT,
22 	INTEL_CONTEXT_SCHEDULE_PREEMPTED,
23 };
24 
25 int intel_execlists_submission_setup(struct intel_engine_cs *engine);
26 
27 void intel_execlists_show_requests(struct intel_engine_cs *engine,
28 				   struct drm_printer *m,
29 				   void (*show_request)(struct drm_printer *m,
30 							const struct i915_request *rq,
31 							const char *prefix,
32 							int indent),
33 				   unsigned int max);
34 
35 void intel_execlists_dump_active_requests(struct intel_engine_cs *engine,
36 					  struct i915_request *hung_rq,
37 					  struct drm_printer *m);
38 
39 bool
40 intel_engine_in_execlists_submission_mode(const struct intel_engine_cs *engine);
41 
42 #endif /* __INTEL_EXECLISTS_SUBMISSION_H__ */
43