drm/i915/gt: Reset queue_priority_hint on parking
authorjsg <jsg@openbsd.org>
Thu, 4 Apr 2024 08:07:39 +0000 (08:07 +0000)
committerjsg <jsg@openbsd.org>
Thu, 4 Apr 2024 08:07:39 +0000 (08:07 +0000)
From Chris Wilson
3b031e4fcb2740988143c303f81f69f18ce86325 in linux-6.6.y/6.6.24
4a3859ea5240365d21f6053ee219bb240d520895 in mainline linux

sys/dev/pci/drm/i915/gt/intel_engine_pm.c
sys/dev/pci/drm/i915/gt/intel_execlists_submission.c

index b538b5c..a95615b 100644 (file)
@@ -278,9 +278,6 @@ static int __engine_park(struct intel_wakeref *wf)
        intel_engine_park_heartbeat(engine);
        intel_breadcrumbs_park(engine->breadcrumbs);
 
-       /* Must be reset upon idling, or we may miss the busy wakeup. */
-       GEM_BUG_ON(engine->sched_engine->queue_priority_hint != INT_MIN);
-
        if (engine->park)
                engine->park(engine);
 
index 7f1f040..c3afa00 100644 (file)
@@ -3279,6 +3279,9 @@ static void execlists_park(struct intel_engine_cs *engine)
 {
        cancel_timer(&engine->execlists.timer);
        cancel_timer(&engine->execlists.preempt);
+
+       /* Reset upon idling, or we may delay the busy wakeup. */
+       WRITE_ONCE(engine->sched_engine->queue_priority_hint, INT_MIN);
 }
 
 static void add_to_engine(struct i915_request *rq)