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 Yuto_lima_drm_priv(struct drm_file *file) 49a1d2a633SQiang Yu { 50a1d2a633SQiang Yu return file->driver_priv; 51a1d2a633SQiang Yu } 52a1d2a633SQiang Yu 53a1d2a633SQiang Yu #endif 54