[Intel-gfx] [PATCH 2/2] drm/i915: Report engines are idle if already parked

Chris Wilson chris at chris-wilson.co.uk
Wed Feb 27 20:46:54 UTC 2019


If we have parked, then we must have passed an idleness test and still
be idle. We chose not to use this shortcut in the past so that we could
use the idleness test at any time and inspect HW, however some HW like
Sandybridge doesn't like being woken up frivolously so avoid doing so.

References: 0b702dca2658 ("drm/i915: Avoid waking the engines just to check if they are idle")
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala at intel.com>
---
 drivers/gpu/drm/i915/intel_engine_cs.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
index b7b626195eda..7160162ae128 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -1045,6 +1045,10 @@ bool intel_engines_are_idle(struct drm_i915_private *dev_priv)
 	if (i915_reset_failed(dev_priv))
 		return true;
 
+	/* Already parked (and passed an idleness test); must still be idle */
+	if (!READ_ONCE(dev_priv->gt.awake))
+		return true;
+
 	for_each_engine(engine, dev_priv, id) {
 		if (!intel_engine_is_idle(engine))
 			return false;
-- 
2.20.1



More information about the Intel-gfx mailing list