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 Yuto_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