/* SPDX-License-Identifier: MIT */ /* * Copyright © 2020 Intel Corporation */ #ifndef __INTEL_MIGRATE__ #define __INTEL_MIGRATE__ #include <linux/types.h> #include "intel_migrate_types.h" struct dma_fence; struct i915_deps; struct i915_request; struct i915_gem_ww_ctx; struct intel_gt; struct scatterlist; enum i915_cache_level; int intel_migrate_init(struct intel_migrate *m, struct intel_gt *gt); struct intel_context *intel_migrate_create_context(struct intel_migrate *m); int intel_migrate_copy(struct intel_migrate *m, struct i915_gem_ww_ctx *ww, const struct i915_deps *deps, struct scatterlist *src, enum i915_cache_level src_cache_level, bool src_is_lmem, struct scatterlist *dst, enum i915_cache_level dst_cache_level, bool dst_is_lmem, struct i915_request **out); int intel_context_migrate_copy(struct intel_context *ce, const struct i915_deps *deps, struct scatterlist *src, enum i915_cache_level src_cache_level, bool src_is_lmem, struct scatterlist *dst, enum i915_cache_level dst_cache_level, bool dst_is_lmem, struct i915_request **out); int intel_migrate_clear(struct intel_migrate *m, struct i915_gem_ww_ctx *ww, const struct i915_deps *deps, struct scatterlist *sg, enum i915_cache_level cache_level, bool is_lmem, u32 value, struct i915_request **out); int intel_context_migrate_clear(struct intel_context *ce, const struct i915_deps *deps, struct scatterlist *sg, enum i915_cache_level cache_level, bool is_lmem, u32 value, struct i915_request **out); void intel_migrate_fini(struct intel_migrate *m); #endif /* __INTEL_MIGRATE__ */