1 /* SPDX-License-Identifier: MIT */
3 * Copyright © 2022 Intel Corporation
6 #ifndef _XE_SCHED_JOB_TYPES_H_
7 #define _XE_SCHED_JOB_TYPES_H_
9 #include <linux/kref.h>
11 #include <drm/gpu_scheduler.h>
16 * struct xe_sched_job - XE schedule job (batch buffer tracking)
19 /** @drm: base DRM scheduler job */
20 struct drm_sched_job drm;
22 struct xe_exec_queue *q;
23 /** @refcount: ref count of this job */
26 * @fence: dma fence to indicate completion. 1 way relationship - job
27 * can safely reference fence, fence cannot safely reference job.
29 #define JOB_FLAG_SUBMIT DMA_FENCE_FLAG_USER_BITS
30 struct dma_fence *fence;
31 /** @user_fence: write back value when BB is complete */
33 /** @user_fence.used: user fence is used */
35 /** @user_fence.addr: address to write to */
37 /** @user_fence.value: write back value */
40 /** @migrate_flush_flags: Additional flush flags for migration jobs */
41 u32 migrate_flush_flags;
42 /** @batch_addr: batch buffer address of job */
46 struct xe_sched_job_snapshot {