[Intel-gfx] [PATCH 1/1] drm/i915: Move i915_gem_suspend_gtt_mappings to i915_gem_suspend

Chris Wilson chris at chris-wilson.co.uk
Thu Oct 5 18:22:39 UTC 2017


Quoting Sagar Arun Kamble (2017-10-05 19:17:46)
> 
> 
> On 10/5/2017 11:41 PM, Chris Wilson wrote:
> > Quoting Sagar Arun Kamble (2017-10-05 19:07:37)
> >> suspend_gtt_mappings was happening post i915_gem_suspend where
> >> GPU is reset in the end. Call it before i915_gem_sanitize.
> >> This also makes portion of i915_gem_suspend symmetrical to
> >> i915_gem_resume and will facilitate proper ordering of GuC resume
> >> where ggtt.invalidate gets updated.
> >>
> >> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> >> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> >> Cc: MichaƂ Winiarski <michal.winiarski at intel.com>
> >> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> >> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> >> ---
> >>   drivers/gpu/drm/i915/i915_drv.c | 2 --
> >>   drivers/gpu/drm/i915/i915_gem.c | 2 ++
> >>   2 files changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> >> index 66fc156..05c71a9 100644
> >> --- a/drivers/gpu/drm/i915/i915_drv.c
> >> +++ b/drivers/gpu/drm/i915/i915_drv.c
> >> @@ -1558,8 +1558,6 @@ static int i915_drm_suspend(struct drm_device *dev)
> >>   
> >>          intel_suspend_hw(dev_priv);
> >>   
> >> -       i915_gem_suspend_gtt_mappings(dev_priv);
> >> -
> >>          i915_save_state(dev_priv);
> >>   
> >>          opregion_target_state = suspend_to_idle(dev_priv) ? PCI_D1 : PCI_D3cold;
> >> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> >> index ab8c694..4abd6fd 100644
> >> --- a/drivers/gpu/drm/i915/i915_gem.c
> >> +++ b/drivers/gpu/drm/i915/i915_gem.c
> >> @@ -4557,6 +4557,8 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
> >>          if (WARN_ON(!intel_engines_are_idle(dev_priv)))
> >>                  i915_gem_set_wedged(dev_priv); /* no hope, discard everything */
> >>   
> >> +       i915_gem_suspend_gtt_mappings(dev_priv);
> > Hmm. suspend_gtt_mappings zaps the GGTT. We shouldn't do that before we
> > shutdown the display. Maybe we need to move the i915_gem_sanitize instead?
> > -Chris
> Any particular reason gem_suspend is being done prior to display 
> suspend? ...

It grew from idling the GPU as the first action - which makes sure that
user updates to the screen stop etc.

> if we could change that order current gem_suspend (i915_gem_suspend post 
> intel_suspend*) with this fix should be fine ...
> Else will have to call gem_sanitize separately.

I guess we are looking at splitting gem_suspend into the user quiescing
section and the hw cleanup.
-Chris


More information about the Intel-gfx mailing list