<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO --- - [845g regression] Suspend does not work on 845g with kernel 3.8.0-rc6"
href="https://bugs.freedesktop.org/show_bug.cgi?id=64610#c12">Comment # 12</a>
on <a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO --- - [845g regression] Suspend does not work on 845g with kernel 3.8.0-rc6"
href="https://bugs.freedesktop.org/show_bug.cgi?id=64610">bug 64610</a>
from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
<pre>You need Daniel's ring cleanup patch, and I think (the second chunk) of:
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c
b/drivers/gpu/drm/i915/intel_ringbuffer.c
index d7ca64e..738f54b 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1281,6 +1281,11 @@ static int intel_init_ring_buffer(struct drm_device
*dev,
return ret;
}
+ /* Stop the ring if it's running. */
+ I915_WRITE_CTL(ring, 0);
+ I915_WRITE_HEAD(ring, 0);
+ ring->write_tail(ring, 0);
+
obj = NULL;
if (!HAS_LLC(dev))
obj = i915_gem_object_create_stolen(dev, ring->size);
@@ -1821,10 +1826,17 @@ int intel_init_render_ring_buffer(struct drm_device
*dev)
return -ENOMEM;
}
- ret = i915_gem_object_pin(obj, 0, true, false);
+ ret = i915_gem_object_pin(obj, 0, false, false);
if (ret != 0) {
drm_gem_object_unreference(&obj->base);
- DRM_ERROR("Failed to ping batch bo\n");
+ DRM_ERROR("Failed to pin batch bo\n");
+ return ret;
+ }
+
+ ret = i915_gem_object_set_to_gtt_domain(obj, true);
+ if (ret) {
+ drm_gem_object_unreference(&obj->base);
+ DRM_ERROR("Failed to flush batch bo\n");
return ret;
}</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>