1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2020 Intel Corporation
4 */
5
6#ifndef __INTEL_MIGRATE__
7#define __INTEL_MIGRATE__
8
9#include <linux/types.h>
10
11#include "intel_migrate_types.h"
12
13struct dma_fence;
14struct i915_deps;
15struct i915_request;
16struct i915_gem_ww_ctx;
17struct intel_gt;
18struct scatterlist;
19
20int intel_migrate_init(struct intel_migrate *m, struct intel_gt *gt);
21
22struct intel_context *intel_migrate_create_context(struct intel_migrate *m);
23
24int intel_migrate_copy(struct intel_migrate *m,
25 struct i915_gem_ww_ctx *ww,
26 const struct i915_deps *deps,
27 struct scatterlist *src,
28 unsigned int src_pat_index,
29 bool src_is_lmem,
30 struct scatterlist *dst,
31 unsigned int dst_pat_index,
32 bool dst_is_lmem,
33 struct i915_request **out);
34
35int intel_context_migrate_copy(struct intel_context *ce,
36 const struct i915_deps *deps,
37 struct scatterlist *src,
38 unsigned int src_pat_index,
39 bool src_is_lmem,
40 struct scatterlist *dst,
41 unsigned int dst_pat_index,
42 bool dst_is_lmem,
43 struct i915_request **out);
44
45int
46intel_migrate_clear(struct intel_migrate *m,
47 struct i915_gem_ww_ctx *ww,
48 const struct i915_deps *deps,
49 struct scatterlist *sg,
50 unsigned int pat_index,
51 bool is_lmem,
52 u32 value,
53 struct i915_request **out);
54int
55intel_context_migrate_clear(struct intel_context *ce,
56 const struct i915_deps *deps,
57 struct scatterlist *sg,
58 unsigned int pat_index,
59 bool is_lmem,
60 u32 value,
61 struct i915_request **out);
62
63void intel_migrate_fini(struct intel_migrate *m);
64
65#endif /* __INTEL_MIGRATE__ */
66

source code of linux/drivers/gpu/drm/i915/gt/intel_migrate.h