summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xe/xe_tlb_inval_job.h
blob: 03d6e21cd6113fedd49074ca131f4df40ea1db27 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2025 Intel Corporation
 */

#ifndef _XE_TLB_INVAL_JOB_H_
#define _XE_TLB_INVAL_JOB_H_

#include <linux/types.h>

struct dma_fence;
struct xe_dep_scheduler;
struct xe_exec_queue;
struct xe_migrate;
struct xe_page_reclaim_list;
struct xe_tlb_inval;
struct xe_tlb_inval_job;
struct xe_vm;

struct xe_tlb_inval_job *
xe_tlb_inval_job_create(struct xe_exec_queue *q, struct xe_tlb_inval *tlb_inval,
			struct xe_dep_scheduler *dep_scheduler,
			struct xe_vm *vm, u64 start, u64 end, int type);

void xe_tlb_inval_job_add_page_reclaim(struct xe_tlb_inval_job *job,
				       struct xe_page_reclaim_list *prl);

int xe_tlb_inval_job_alloc_dep(struct xe_tlb_inval_job *job);

struct dma_fence *xe_tlb_inval_job_push(struct xe_tlb_inval_job *job,
					struct xe_migrate *m,
					struct dma_fence *fence);

void xe_tlb_inval_job_get(struct xe_tlb_inval_job *job);

void xe_tlb_inval_job_put(struct xe_tlb_inval_job *job);

#endif