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