Chris Wilson <[email protected]> writes:

> 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 <[email protected]>
> Cc: Mika Kuoppala <[email protected]>

Reviewed-by: Mika Kuoppala <[email protected]>

> ---
>  drivers/gpu/drm/i915/intel_engine_cs.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
> b/drivers/gpu/drm/i915/intel_engine_cs.c
> index b7b626195eda..96a38f411bc7 100644
> --- a/drivers/gpu/drm/i915/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/intel_engine_cs.c
> @@ -1033,7 +1033,7 @@ bool intel_engine_is_idle(struct intel_engine_cs 
> *engine)
>       return ring_is_idle(engine);
>  }
>  
> -bool intel_engines_are_idle(struct drm_i915_private *dev_priv)
> +bool intel_engines_are_idle(struct drm_i915_private *i915)
>  {
>       struct intel_engine_cs *engine;
>       enum intel_engine_id id;
> @@ -1042,10 +1042,14 @@ bool intel_engines_are_idle(struct drm_i915_private 
> *dev_priv)
>        * If the driver is wedged, HW state may be very inconsistent and
>        * report that it is still busy, even though we have stopped using it.
>        */
> -     if (i915_reset_failed(dev_priv))
> +     if (i915_reset_failed(i915))
>               return true;
>  
> -     for_each_engine(engine, dev_priv, id) {
> +     /* Already parked (and passed an idleness test); must still be idle */
> +     if (!READ_ONCE(i915->gt.awake))
> +             return true;
> +
> +     for_each_engine(engine, i915, id) {
>               if (!intel_engine_is_idle(engine))
>                       return false;
>       }
> -- 
> 2.20.1
>
> _______________________________________________
> Intel-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to