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__ */ 37