1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Tegra host1x Job
4  *
5  * Copyright (c) 2011-2013, NVIDIA Corporation.
6  */
7 
8 #ifndef __HOST1X_JOB_H
9 #define __HOST1X_JOB_H
10 
11 #include <linux/dma-direction.h>
12 
13 struct host1x_job_gather {
14 	unsigned int words;
15 	dma_addr_t base;
16 	struct host1x_bo *bo;
17 	unsigned int offset;
18 	bool handled;
19 };
20 
21 struct host1x_job_wait {
22 	u32 id;
23 	u32 threshold;
24 	u32 next_class;
25 	bool relative;
26 };
27 
28 struct host1x_job_cmd {
29 	bool is_wait;
30 
31 	union {
32 		struct host1x_job_gather gather;
33 		struct host1x_job_wait wait;
34 	};
35 };
36 
37 struct host1x_job_unpin_data {
38 	struct host1x_bo *bo;
39 	struct sg_table *sgt;
40 	struct device *dev;
41 	size_t size;
42 	enum dma_data_direction dir;
43 };
44 
45 /*
46  * Dump contents of job to debug output.
47  */
48 void host1x_job_dump(struct device *dev, struct host1x_job *job);
49 
50 #endif
51