Module Name:    src
Committed By:   riastradh
Date:           Sun Dec 19 11:37:50 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915: i915_scheduler.c
            i915_scheduler.h
        src/sys/external/bsd/drm2/dist/drm/i915/gt: intel_lrc.c

Log Message:
i915: Initialize the rbtree.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.h
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.c:1.4	Sun Dec 19 11:37:41 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.c	Sun Dec 19 11:37:50 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_scheduler.c,v 1.4 2021/12/19 11:37:41 riastradh Exp $	*/
+/*	$NetBSD: i915_scheduler.c,v 1.5 2021/12/19 11:37:50 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_scheduler.c,v 1.4 2021/12/19 11:37:41 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_scheduler.c,v 1.5 2021/12/19 11:37:50 riastradh Exp $");
 
 #include <linux/mutex.h>
 
@@ -82,6 +82,50 @@ static void assert_priolists(struct inte
 	}
 }
 
+#ifdef __NetBSD__
+
+static int
+compare_priolists(void *cookie, const void *va, const void *vb)
+{
+	const struct i915_priolist *a = va;
+	const struct i915_priolist *b = vb;
+
+	if (a->priority < b->priority)
+		return -1;
+	if (a->priority > b->priority)
+		return +1;
+	return 0;
+}
+
+static int
+compare_priolist_key(void *cookie, const void *vp, const void *vk)
+{
+	const struct i915_priolist *p = vp;
+	const int *priorityp = vk, priority = *priorityp;
+
+	if (p->priority < priority)
+		return -1;
+	if (p->priority > priority)
+		return -1;
+	return 0;
+}
+
+static const rb_tree_ops_t i915_priolist_rb_ops = {
+	.rbto_compare_nodes = compare_priolists,
+	.rbto_compare_key = compare_priolist_key,
+	.rbto_node_offset = offsetof(struct i915_priolist, node),
+};
+
+void
+i915_sched_init(struct intel_engine_execlists *execlists)
+{
+
+	rb_tree_init(&execlists->queue.rb_root.rbr_tree,
+	    &i915_priolist_rb_ops);
+}
+
+#endif
+
 struct list_head *
 i915_sched_lookup_priolist(struct intel_engine_cs *engine, int prio)
 {

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.h:1.2 src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.h:1.2	Sat Dec 18 23:45:28 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_scheduler.h	Sun Dec 19 11:37:50 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_scheduler.h,v 1.2 2021/12/18 23:45:28 riastradh Exp $	*/
+/*	$NetBSD: i915_scheduler.h,v 1.3 2021/12/19 11:37:50 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -55,4 +55,6 @@ static inline void i915_priolist_free(st
 		__i915_priolist_free(p);
 }
 
+void i915_sched_init(struct intel_engine_execlists *);
+
 #endif /* _I915_SCHEDULER_H_ */

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c:1.2 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c:1.2	Sat Dec 18 23:45:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c	Sun Dec 19 11:37:50 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_lrc.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
+/*	$NetBSD: intel_lrc.c,v 1.3 2021/12/19 11:37:50 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -134,7 +134,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.3 2021/12/19 11:37:50 riastradh Exp $");
 
 #include <linux/interrupt.h>
 
@@ -4326,6 +4326,8 @@ int intel_execlists_submission_setup(str
 	struct intel_uncore *uncore = engine->uncore;
 	u32 base = engine->mmio_base;
 
+	i915_sched_init(&engine->execlists);
+
 	tasklet_init(&engine->execlists.tasklet,
 		     execlists_submission_tasklet, (unsigned long)engine);
 	timer_setup(&engine->execlists.timer, execlists_timeslice, 0);

Reply via email to