summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorDaniel Vetter2014-11-20 09:45:19 +0100
committerDaniel Vetter2014-12-03 09:35:30 +0100
commitd5abdfda91228349e7410e7a98f67fe044bfea7c (patch)
tree8023f07340d5cf2eb98d2f3ef60227092bc59b7f /drivers/gpu/drm/i915/i915_gem.c
parentdrm/i915: Fix startup failure in LRC mode after recent init changes (diff)
downloadkernel-qcow2-linux-d5abdfda91228349e7410e7a98f67fe044bfea7c.tar.gz
kernel-qcow2-linux-d5abdfda91228349e7410e7a98f67fe044bfea7c.tar.xz
kernel-qcow2-linux-d5abdfda91228349e7410e7a98f67fe044bfea7c.zip
drm/i915: Move init_unused_rings to gem_init_hw
We need to do that every time we resume the rings, not just at load. I've overlooked this in my untangling of the ring init code. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: Dave Gordon <david.s.gordon@intel.com> 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.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 7a83a9fa76b3..9d362d320d82 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4709,14 +4709,6 @@ int i915_gem_init_rings(struct drm_device *dev)
struct drm_i915_private *dev_priv = dev->dev_private;
int ret;
- /*
- * At least 830 can leave some of the unused rings
- * "active" (ie. head != tail) after resume which
- * will prevent c3 entry. Makes sure all unused rings
- * are totally idle.
- */
- init_unused_rings(dev);
-
ret = intel_init_render_ring_buffer(dev);
if (ret)
return ret;
@@ -4796,6 +4788,14 @@ i915_gem_init_hw(struct drm_device *dev)
i915_gem_init_swizzling(dev);
+ /*
+ * At least 830 can leave some of the unused rings
+ * "active" (ie. head != tail) after resume which
+ * will prevent c3 entry. Makes sure all unused rings
+ * are totally idle.
+ */
+ init_unused_rings(dev);
+
for_each_ring(ring, dev_priv, i) {
ret = ring->init_hw(ring);
if (ret)