Merge tag 'batadv-next-pullrequest-20210408' of git://git.open-mesh.org/linux-merge
[linux-2.6-block.git] / drivers / gpu / drm / i915 / gt / intel_execlists_submission.h
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/types.h>
10
11 struct drm_printer;
12
13 struct i915_request;
14 struct intel_context;
15 struct intel_engine_cs;
16
17 enum {
18         INTEL_CONTEXT_SCHEDULE_IN = 0,
19         INTEL_CONTEXT_SCHEDULE_OUT,
20         INTEL_CONTEXT_SCHEDULE_PREEMPTED,
21 };
22
23 int intel_execlists_submission_setup(struct intel_engine_cs *engine);
24
25 void intel_execlists_show_requests(struct intel_engine_cs *engine,
26                                    struct drm_printer *m,
27                                    void (*show_request)(struct drm_printer *m,
28                                                         const struct i915_request *rq,
29                                                         const char *prefix,
30                                                         int indent),
31                                    unsigned int max);
32
33 struct intel_context *
34 intel_execlists_create_virtual(struct intel_engine_cs **siblings,
35                                unsigned int count);
36
37 struct intel_context *
38 intel_execlists_clone_virtual(struct intel_engine_cs *src);
39
40 int intel_virtual_engine_attach_bond(struct intel_engine_cs *engine,
41                                      const struct intel_engine_cs *master,
42                                      const struct intel_engine_cs *sibling);
43
44 bool
45 intel_engine_in_execlists_submission_mode(const struct intel_engine_cs *engine);
46
47 #endif /* __INTEL_EXECLISTS_SUBMISSION_H__ */