drm/i915: Disconnect 32 and 48 bit ppGTT support
authorJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Fri, 11 Aug 2017 09:51:26 +0000 (12:51 +0300)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Tue, 15 Aug 2017 02:11:49 +0000 (10:11 +0800)
Configurations like virtualized environments may support only 48 bit
ppGTT without supporting 32 bit ppGTT. Support this by disconnecting
the relationship of the two feature bits.

Cc: Tina Zhang <tina.zhang@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/i915_gem_gtt.c

index 10aa7762d9a63c440a845509c08acd05849bb28b..a5eada1b93c52cdfae96b69e64dd9595628d273a 100644 (file)
@@ -180,10 +180,15 @@ int intel_sanitize_enable_ppgtt(struct drm_i915_private *dev_priv,
                return 0;
        }
 
-       if (INTEL_GEN(dev_priv) >= 8 && i915.enable_execlists && has_full_ppgtt)
-               return has_full_48bit_ppgtt ? 3 : 2;
-       else
-               return has_aliasing_ppgtt ? 1 : 0;
+       if (INTEL_GEN(dev_priv) >= 8 && i915.enable_execlists) {
+               if (has_full_48bit_ppgtt)
+                       return 3;
+
+               if (has_full_ppgtt)
+                       return 2;
+       }
+
+       return has_aliasing_ppgtt ? 1 : 0;
 }
 
 static int ppgtt_bind_vma(struct i915_vma *vma,