<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>