summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/xe/xe_execlist_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/xe/xe_execlist_types.h')
-rw-r--r--drivers/gpu/drm/xe/xe_execlist_types.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/drivers/gpu/drm/xe/xe_execlist_types.h b/drivers/gpu/drm/xe/xe_execlist_types.h
new file mode 100644
index 000000000000..9b1239b47292
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_execlist_types.h
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2022 Intel Corporation
+ */
+
+#ifndef _XE_EXECLIST_TYPES_H_
+#define _XE_EXECLIST_TYPES_H_
+
+#include <linux/list.h>
+#include <linux/spinlock.h>
+#include <linux/workqueue.h>
+
+#include "xe_engine_types.h"
+
+struct xe_hw_engine;
+struct xe_execlist_engine;
+
+struct xe_execlist_port {
+ struct xe_hw_engine *hwe;
+
+ spinlock_t lock;
+
+ struct list_head active[XE_ENGINE_PRIORITY_COUNT];
+
+ u32 last_ctx_id;
+
+ struct xe_execlist_engine *running_exl;
+
+ struct timer_list irq_fail;
+};
+
+struct xe_execlist_engine {
+ struct xe_engine *engine;
+
+ struct drm_gpu_scheduler sched;
+
+ struct drm_sched_entity entity;
+
+ struct xe_execlist_port *port;
+
+ bool has_run;
+
+ struct work_struct fini_async;
+
+ enum xe_engine_priority active_priority;
+ struct list_head active_link;
+};
+
+#endif