xref: /linux/drivers/gpu/drm/xe/xe_tlb_inval_job.h (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2025 Intel Corporation
4  */
5 
6 #ifndef _XE_TLB_INVAL_JOB_H_
7 #define _XE_TLB_INVAL_JOB_H_
8 
9 #include <linux/types.h>
10 
11 struct dma_fence;
12 struct xe_dep_scheduler;
13 struct xe_exec_queue;
14 struct xe_tlb_inval;
15 struct xe_tlb_inval_job;
16 struct xe_migrate;
17 
18 struct xe_tlb_inval_job *
19 xe_tlb_inval_job_create(struct xe_exec_queue *q, struct xe_tlb_inval *tlb_inval,
20 			struct xe_dep_scheduler *dep_scheduler,
21 			u64 start, u64 end, u32 asid);
22 
23 int xe_tlb_inval_job_alloc_dep(struct xe_tlb_inval_job *job);
24 
25 struct dma_fence *xe_tlb_inval_job_push(struct xe_tlb_inval_job *job,
26 					struct xe_migrate *m,
27 					struct dma_fence *fence);
28 
29 void xe_tlb_inval_job_get(struct xe_tlb_inval_job *job);
30 
31 void xe_tlb_inval_job_put(struct xe_tlb_inval_job *job);
32 
33 #endif
34