162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 OR MIT */
262306a36Sopenharmony_ci/* Copyright 2017-2019 Qiang Yu <yuq825@gmail.com> */
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#ifndef __LIMA_DRV_H__
562306a36Sopenharmony_ci#define __LIMA_DRV_H__
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#include <drm/drm_file.h>
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include "lima_ctx.h"
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciextern int lima_sched_timeout_ms;
1262306a36Sopenharmony_ciextern uint lima_heap_init_nr_pages;
1362306a36Sopenharmony_ciextern uint lima_max_error_tasks;
1462306a36Sopenharmony_ciextern uint lima_job_hang_limit;
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cistruct lima_vm;
1762306a36Sopenharmony_cistruct lima_bo;
1862306a36Sopenharmony_cistruct lima_sched_task;
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cistruct drm_lima_gem_submit_bo;
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_cistruct lima_drm_priv {
2362306a36Sopenharmony_ci	struct lima_vm *vm;
2462306a36Sopenharmony_ci	struct lima_ctx_mgr ctx_mgr;
2562306a36Sopenharmony_ci};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cistruct lima_submit {
2862306a36Sopenharmony_ci	struct lima_ctx *ctx;
2962306a36Sopenharmony_ci	int pipe;
3062306a36Sopenharmony_ci	u32 flags;
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	struct drm_lima_gem_submit_bo *bos;
3362306a36Sopenharmony_ci	struct lima_bo **lbos;
3462306a36Sopenharmony_ci	u32 nr_bos;
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	u32 in_sync[2];
3762306a36Sopenharmony_ci	u32 out_sync;
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	struct lima_sched_task *task;
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_cistatic inline struct lima_drm_priv *
4362306a36Sopenharmony_cito_lima_drm_priv(struct drm_file *file)
4462306a36Sopenharmony_ci{
4562306a36Sopenharmony_ci	return file->driver_priv;
4662306a36Sopenharmony_ci}
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci#endif
49