1cf586021SChris Wilson /* SPDX-License-Identifier: MIT */ 2cf586021SChris Wilson /* 3cf586021SChris Wilson * Copyright © 2020 Intel Corporation 4cf586021SChris Wilson */ 5cf586021SChris Wilson 6cf586021SChris Wilson #ifndef __INTEL_MIGRATE__ 7cf586021SChris Wilson #define __INTEL_MIGRATE__ 8cf586021SChris Wilson 9563baae1SChris Wilson #include <linux/types.h> 10563baae1SChris Wilson 11cf586021SChris Wilson #include "intel_migrate_types.h" 12cf586021SChris Wilson 13cf586021SChris Wilson struct dma_fence; 1411930817SThomas Hellström struct i915_deps; 15cf586021SChris Wilson struct i915_request; 16cf586021SChris Wilson struct i915_gem_ww_ctx; 17cf586021SChris Wilson struct intel_gt; 18cf586021SChris Wilson struct scatterlist; 19cf586021SChris Wilson 20cf586021SChris Wilson int intel_migrate_init(struct intel_migrate *m, struct intel_gt *gt); 21cf586021SChris Wilson 22cf586021SChris Wilson struct intel_context *intel_migrate_create_context(struct intel_migrate *m); 23cf586021SChris Wilson 24cf586021SChris Wilson int intel_migrate_copy(struct intel_migrate *m, 25cf586021SChris Wilson struct i915_gem_ww_ctx *ww, 2611930817SThomas Hellström const struct i915_deps *deps, 27cf586021SChris Wilson struct scatterlist *src, 28*9275277dSFei Yang unsigned int src_pat_index, 29cf586021SChris Wilson bool src_is_lmem, 30cf586021SChris Wilson struct scatterlist *dst, 31*9275277dSFei Yang unsigned int dst_pat_index, 32cf586021SChris Wilson bool dst_is_lmem, 33cf586021SChris Wilson struct i915_request **out); 34cf586021SChris Wilson 35cf586021SChris Wilson int intel_context_migrate_copy(struct intel_context *ce, 3611930817SThomas Hellström const struct i915_deps *deps, 37cf586021SChris Wilson struct scatterlist *src, 38*9275277dSFei Yang unsigned int src_pat_index, 39cf586021SChris Wilson bool src_is_lmem, 40cf586021SChris Wilson struct scatterlist *dst, 41*9275277dSFei Yang unsigned int dst_pat_index, 42cf586021SChris Wilson bool dst_is_lmem, 43cf586021SChris Wilson struct i915_request **out); 44cf586021SChris Wilson 45563baae1SChris Wilson int 46563baae1SChris Wilson intel_migrate_clear(struct intel_migrate *m, 47563baae1SChris Wilson struct i915_gem_ww_ctx *ww, 4811930817SThomas Hellström const struct i915_deps *deps, 49563baae1SChris Wilson struct scatterlist *sg, 50*9275277dSFei Yang unsigned int pat_index, 51563baae1SChris Wilson bool is_lmem, 52563baae1SChris Wilson u32 value, 53563baae1SChris Wilson struct i915_request **out); 54563baae1SChris Wilson int 55563baae1SChris Wilson intel_context_migrate_clear(struct intel_context *ce, 5611930817SThomas Hellström const struct i915_deps *deps, 57563baae1SChris Wilson struct scatterlist *sg, 58*9275277dSFei Yang unsigned int pat_index, 59563baae1SChris Wilson bool is_lmem, 60563baae1SChris Wilson u32 value, 61563baae1SChris Wilson struct i915_request **out); 62563baae1SChris Wilson 63cf586021SChris Wilson void intel_migrate_fini(struct intel_migrate *m); 64cf586021SChris Wilson 65cf586021SChris Wilson #endif /* __INTEL_MIGRATE__ */ 66