drm/i915: switch to default context on idle

To keep things as sane as possible, switch to the default context before
idling. This should help free context objects, as well as put things in
a more well defined state before suspending.

v2: remove seqno from context switch call (daniel)
return error on failed context switch instead of WARN+continue (daniel)

v3: move idling to i915_gpu idle (from i915_gem_idle) (Chris)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
This commit is contained in:
Ben Widawsky 2012-06-04 14:42:53 -07:00 committed by Daniel Vetter
parent b9a3906b60
commit f2ef6eb145
1 changed files with 4 additions and 0 deletions

View File

@ -2332,6 +2332,10 @@ int i915_gpu_idle(struct drm_device *dev)
/* Is the device fubar? */ /* Is the device fubar? */
if (WARN_ON(!list_empty(&ring->gpu_write_list))) if (WARN_ON(!list_empty(&ring->gpu_write_list)))
return -EBUSY; return -EBUSY;
ret = i915_switch_context(ring, NULL, DEFAULT_CONTEXT_ID);
if (ret)
return ret;
} }
return 0; return 0;