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