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 13 struct dma_fence; 14 struct i915_deps; 15 struct i915_request; 16 struct i915_gem_ww_ctx; 17 struct intel_gt; 18 struct scatterlist; 19 20 int intel_migrate_init(struct intel_migrate *m, struct intel_gt *gt); 21 22 struct intel_context *intel_migrate_create_context(struct intel_migrate *m); 23 24 int 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 35 int 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 45 int 46 intel_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); 54 int 55 intel_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 63 void intel_migrate_fini(struct intel_migrate *m); 64 65 #endif /* __INTEL_MIGRATE__ */ 66