GNU Linux-libre 5.10.215-gnu1
[releases.git] / drivers / gpu / drm / i915 / gt / intel_breadcrumbs.h
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2019 Intel Corporation
4  */
5
6 #ifndef __INTEL_BREADCRUMBS__
7 #define __INTEL_BREADCRUMBS__
8
9 #include <linux/irq_work.h>
10
11 #include "intel_engine_types.h"
12
13 struct drm_printer;
14 struct i915_request;
15 struct intel_breadcrumbs;
16
17 struct intel_breadcrumbs *
18 intel_breadcrumbs_create(struct intel_engine_cs *irq_engine);
19 void intel_breadcrumbs_free(struct intel_breadcrumbs *b);
20
21 void intel_breadcrumbs_reset(struct intel_breadcrumbs *b);
22 void intel_breadcrumbs_park(struct intel_breadcrumbs *b);
23
24 static inline void
25 intel_engine_signal_breadcrumbs(struct intel_engine_cs *engine)
26 {
27         irq_work_queue(&engine->breadcrumbs->irq_work);
28 }
29
30 void intel_engine_print_breadcrumbs(struct intel_engine_cs *engine,
31                                     struct drm_printer *p);
32
33 bool i915_request_enable_breadcrumb(struct i915_request *request);
34 void i915_request_cancel_breadcrumb(struct i915_request *request);
35
36 #endif /* __INTEL_BREADCRUMBS__ */