Message ID | 1344980117-1993-3-git-send-email-ben@bwidawsk.net (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Tue, Aug 14, 2012 at 02:35:14PM -0700, Ben Widawsky wrote: > After reset we unconditionally reinitialize lists. If the context switch > hasn't yet completed before the suspend, the default context object will > end up on lists that are going to go away when we resume. > > The patch forces the context switch to be synchronous before suspend > assuring that the active/inactive tracking is correct at the time of > resume. > > References: https://bugs.freedesktop.org/show_bug.cgi?id=52429 > Tested-by: Guang A Yang <guang.a.yang@intel.com> > Signed-off-by: Ben Widawsky <ben@bwidawsk.net> > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Picked up for -fixes (with a minor conflict resolved), thanks for the patch. -Daniel
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 0d992e6..0edec12 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2274,11 +2274,11 @@ int i915_gpu_idle(struct drm_device *dev) /* Flush everything onto the inactive list. */ for_each_ring(ring, dev_priv, i) { - ret = i915_ring_idle(ring); + ret = i915_switch_context(ring, NULL, DEFAULT_CONTEXT_ID); if (ret) return ret; - ret = i915_switch_context(ring, NULL, DEFAULT_CONTEXT_ID); + ret = i915_ring_idle(ring); if (ret) return ret; }