1 /*
2  * Copyright (C) 2017 Etnaviv Project
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 2 as published by
6  * the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  * You should have received a copy of the GNU General Public License along with
14  * this program.  If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #ifndef __ETNAVIV_SCHED_H__
18 #define __ETNAVIV_SCHED_H__
19 
20 #include <drm/gpu_scheduler.h>
21 
22 struct etnaviv_gpu;
23 
24 static inline
25 struct etnaviv_gem_submit *to_etnaviv_submit(struct drm_sched_job *sched_job)
26 {
27 	return container_of(sched_job, struct etnaviv_gem_submit, sched_job);
28 }
29 
30 int etnaviv_sched_init(struct etnaviv_gpu *gpu);
31 void etnaviv_sched_fini(struct etnaviv_gpu *gpu);
32 int etnaviv_sched_push_job(struct drm_sched_entity *sched_entity,
33 			   struct etnaviv_gem_submit *submit);
34 
35 #endif /* __ETNAVIV_SCHED_H__ */
36