drm/i915/gem: Use shrinkable status for unknown swizzle quirks
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / gem / i915_gem_tiling.c
index ffcaee7..d589d3d 100644 (file)
@@ -270,14 +270,14 @@ i915_gem_object_set_tiling(struct drm_i915_gem_object *obj,
            obj->mm.madv == I915_MADV_WILLNEED &&
            i915->quirks & QUIRK_PIN_SWIZZLED_PAGES) {
                if (tiling == I915_TILING_NONE) {
-                       GEM_BUG_ON(!obj->mm.quirked);
-                       __i915_gem_object_unpin_pages(obj);
-                       obj->mm.quirked = false;
+                       GEM_BUG_ON(!i915_gem_object_has_tiling_quirk(obj));
+                       i915_gem_object_clear_tiling_quirk(obj);
+                       i915_gem_object_make_shrinkable(obj);
                }
                if (!i915_gem_object_is_tiled(obj)) {
-                       GEM_BUG_ON(obj->mm.quirked);
-                       __i915_gem_object_pin_pages(obj);
-                       obj->mm.quirked = true;
+                       GEM_BUG_ON(i915_gem_object_has_tiling_quirk(obj));
+                       i915_gem_object_make_unshrinkable(obj);
+                       i915_gem_object_set_tiling_quirk(obj);
                }
        }
        mutex_unlock(&obj->mm.lock);