0001
0002
0003
0004
0005
0006 #ifndef __INTEL_MIGRATE__
0007 #define __INTEL_MIGRATE__
0008
0009 #include <linux/types.h>
0010
0011 #include "intel_migrate_types.h"
0012
0013 struct dma_fence;
0014 struct i915_deps;
0015 struct i915_request;
0016 struct i915_gem_ww_ctx;
0017 struct intel_gt;
0018 struct scatterlist;
0019 enum i915_cache_level;
0020
0021 int intel_migrate_init(struct intel_migrate *m, struct intel_gt *gt);
0022
0023 struct intel_context *intel_migrate_create_context(struct intel_migrate *m);
0024
0025 int intel_migrate_copy(struct intel_migrate *m,
0026 struct i915_gem_ww_ctx *ww,
0027 const struct i915_deps *deps,
0028 struct scatterlist *src,
0029 enum i915_cache_level src_cache_level,
0030 bool src_is_lmem,
0031 struct scatterlist *dst,
0032 enum i915_cache_level dst_cache_level,
0033 bool dst_is_lmem,
0034 struct i915_request **out);
0035
0036 int intel_context_migrate_copy(struct intel_context *ce,
0037 const struct i915_deps *deps,
0038 struct scatterlist *src,
0039 enum i915_cache_level src_cache_level,
0040 bool src_is_lmem,
0041 struct scatterlist *dst,
0042 enum i915_cache_level dst_cache_level,
0043 bool dst_is_lmem,
0044 struct i915_request **out);
0045
0046 int
0047 intel_migrate_clear(struct intel_migrate *m,
0048 struct i915_gem_ww_ctx *ww,
0049 const struct i915_deps *deps,
0050 struct scatterlist *sg,
0051 enum i915_cache_level cache_level,
0052 bool is_lmem,
0053 u32 value,
0054 struct i915_request **out);
0055 int
0056 intel_context_migrate_clear(struct intel_context *ce,
0057 const struct i915_deps *deps,
0058 struct scatterlist *sg,
0059 enum i915_cache_level cache_level,
0060 bool is_lmem,
0061 u32 value,
0062 struct i915_request **out);
0063
0064 void intel_migrate_fini(struct intel_migrate *m);
0065
0066 #endif