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 <ch...@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuopp...@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

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to