1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2019 Intel Corporation
4  */
5 
6 #ifndef __I915_GEM_OBJECT_BLT_H__
7 #define __I915_GEM_OBJECT_BLT_H__
8 
9 #include <linux/types.h>
10 
11 #include "gt/intel_context.h"
12 #include "gt/intel_engine_pm.h"
13 #include "gt/intel_engine_pool.h"
14 #include "i915_vma.h"
15 
16 struct drm_i915_gem_object;
17 
18 struct i915_vma *intel_emit_vma_fill_blt(struct intel_context *ce,
19 					 struct i915_vma *vma,
20 					 u32 value);
21 
22 struct i915_vma *intel_emit_vma_copy_blt(struct intel_context *ce,
23 					 struct i915_vma *src,
24 					 struct i915_vma *dst);
25 
26 int intel_emit_vma_mark_active(struct i915_vma *vma, struct i915_request *rq);
27 void intel_emit_vma_release(struct intel_context *ce, struct i915_vma *vma);
28 
29 int i915_gem_object_fill_blt(struct drm_i915_gem_object *obj,
30 			     struct intel_context *ce,
31 			     u32 value);
32 
33 int i915_gem_object_copy_blt(struct drm_i915_gem_object *src,
34 			     struct drm_i915_gem_object *dst,
35 			     struct intel_context *ce);
36 
37 #endif
38