summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorThomas Daniel2014-08-20 17:29:24 +0200
committerDaniel Vetter2014-09-03 11:04:17 +0200
commitecdb5fd8619964c8fb4e34703fb8e72eaa8a22cb (patch)
treec13392374375a0d6d2fcf8cbd3e1d62f84903001 /drivers/gpu/drm/i915/i915_gem.c
parentdrm/i915: Fix to Enable GT/PM Interrupts (diff)
downloadkernel-qcow2-linux-ecdb5fd8619964c8fb4e34703fb8e72eaa8a22cb.tar.gz
kernel-qcow2-linux-ecdb5fd8619964c8fb4e34703fb8e72eaa8a22cb.tar.xz
kernel-qcow2-linux-ecdb5fd8619964c8fb4e34703fb8e72eaa8a22cb.zip
drm/i915/bdw: Don't execute context reset and switch with Execlists
These two functions make no sense in an Logical Ring Context & Execlists world. v2: We got rid of lrc_enabled and centralized everything in the sanitized i915.enable_execlists instead. Signed-off-by: Oscar Mateo <oscar.mateo@intel.com> v3: Rebased. Corrected a typo in comment for i915_switch_context and added a comment that it should not be called in execlist mode. Added WARN_ON if i915_switch_context is called in execlist mode. Moved check for execlist mode out of i915_switch_context and into callers. Added comment in context_reset explaining why nothing is done in execlist mode. Signed-off-by: Thomas Daniel <thomas.daniel@intel.com> [danvet: Simplify the patch subject so I can understand it.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index fcd7dde6e444..60b8bd1717db 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2985,9 +2985,11 @@ int i915_gpu_idle(struct drm_device *dev)
/* Flush everything onto the inactive list. */
for_each_ring(ring, dev_priv, i) {
- ret = i915_switch_context(ring, ring->default_context);
- if (ret)
- return ret;
+ if (!i915.enable_execlists) {
+ ret = i915_switch_context(ring, ring->default_context);
+ if (ret)
+ return ret;
+ }
ret = intel_ring_idle(ring);
if (ret)