1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2022 Intel Corporation
4 */
5
6#ifndef _XE_EXECLIST_TYPES_H_
7#define _XE_EXECLIST_TYPES_H_
8
9#include <linux/list.h>
10#include <linux/spinlock.h>
11#include <linux/workqueue.h>
12
13#include "xe_exec_queue_types.h"
14
15struct xe_hw_engine;
16struct xe_execlist_exec_queue;
17
18struct xe_execlist_port {
19 struct xe_hw_engine *hwe;
20
21 spinlock_t lock;
22
23 struct list_head active[XE_EXEC_QUEUE_PRIORITY_COUNT];
24
25 u32 last_ctx_id;
26
27 struct xe_execlist_exec_queue *running_exl;
28
29 struct timer_list irq_fail;
30
31 struct xe_lrc *lrc;
32};
33
34struct xe_execlist_exec_queue {
35 struct xe_exec_queue *q;
36
37 struct drm_gpu_scheduler sched;
38
39 struct drm_sched_entity entity;
40
41 struct xe_execlist_port *port;
42
43 bool has_run;
44
45 struct work_struct destroy_async;
46
47 enum xe_exec_queue_priority active_priority;
48 struct list_head active_link;
49};
50
51#endif
52

source code of linux/drivers/gpu/drm/xe/xe_execlist_types.h