drm/i915/bdw: Restore PPAT on thaw
authorBen Widawsky <benjamin.widawsky@intel.com>
Tue, 18 Mar 2014 23:09:37 +0000 (16:09 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 19 Mar 2014 08:44:48 +0000 (09:44 +0100)
Apparently it is wiped out from under us, and we get some really fun
caching artifacts upon resume (it seems to be WB for all types by
default).

Reported-by: James Ausmus <james.ausmus@intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Tested-by: James Ausmus <james.ausmus@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76113
Tested-by: Timo Aaltonen <timo.aaltonen@canonical.com>
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_gtt.c

index 0dce6fc9b1cc9d8ba9b573c353cc4da4c04e9201..ee535514aa41925c307982300b25e09c17dabf7e 100644 (file)
@@ -30,6 +30,8 @@
 #include "i915_trace.h"
 #include "intel_drv.h"
 
+static void gen8_setup_private_ppat(struct drm_i915_private *dev_priv);
+
 bool intel_enable_ppgtt(struct drm_device *dev, bool full)
 {
        if (i915.enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev))
@@ -1370,8 +1372,10 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev)
        }
 
 
-       if (INTEL_INFO(dev)->gen >= 8)
+       if (INTEL_INFO(dev)->gen >= 8) {
+               gen8_setup_private_ppat(dev_priv);
                return;
+       }
 
        list_for_each_entry(vm, &dev_priv->vm_list, global_link) {
                /* TODO: Perhaps it shouldn't be gen6 specific */