1 /* SPDX-License-Identifier: GPL-2.0 OR MIT */
2 /* Copyright 2017-2019 Qiang Yu <yuq825@gmail.com> */
3 
4 #ifndef __LIMA_DRV_H__
5 #define __LIMA_DRV_H__
6 
7 #include <drm/drm_file.h>
8 
9 #include "lima_ctx.h"
10 
11 extern int lima_sched_timeout_ms;
12 extern uint lima_heap_init_nr_pages;
13 extern uint lima_max_error_tasks;
14 extern uint lima_job_hang_limit;
15 
16 struct lima_vm;
17 struct lima_bo;
18 struct lima_sched_task;
19 
20 struct drm_lima_gem_submit_bo;
21 
22 struct lima_drm_priv {
23 	struct lima_vm *vm;
24 	struct lima_ctx_mgr ctx_mgr;
25 };
26 
27 struct lima_submit {
28 	struct lima_ctx *ctx;
29 	int pipe;
30 	u32 flags;
31 
32 	struct drm_lima_gem_submit_bo *bos;
33 	struct lima_bo **lbos;
34 	u32 nr_bos;
35 
36 	u32 in_sync[2];
37 	u32 out_sync;
38 
39 	struct lima_sched_task *task;
40 };
41 
42 static inline struct lima_drm_priv *
to_lima_drm_priv(struct drm_file * file)43 to_lima_drm_priv(struct drm_file *file)
44 {
45 	return file->driver_priv;
46 }
47 
48 #endif
49