aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2014-08-05 10:51:18 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-08-08 11:43:58 -0400
commit692ef70c016b5035ad1942ccc2bc4040aa290044 (patch)
treeaa62c873455a25007d1b2cfb9756afbe90039c4e
parentefd814b73cfcf4ed1cb561561d8df6daccb3ceb6 (diff)
drm/i915: clean up PPGTT checking logic
sanitize_enable_ppgtt is the function that checks all the conditions, honoring a forced ppgtt status or doing auto-detect as necessary. Just make sure it returns the right value in all cases and use that in the macros instead of the confusing intel_enable_ppgtt() function. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> [danvet: Don't reenable full ppgtt through the backdoor.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h4
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c11
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.h1
3 files changed, 2 insertions, 14 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 73d2308e2377..125a83c70768 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2065,8 +2065,8 @@ struct drm_i915_cmd_table {
2065#define HAS_HW_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 6) 2065#define HAS_HW_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 6)
2066#define HAS_ALIASING_PPGTT(dev) (INTEL_INFO(dev)->gen >= 6) 2066#define HAS_ALIASING_PPGTT(dev) (INTEL_INFO(dev)->gen >= 6)
2067#define HAS_PPGTT(dev) (INTEL_INFO(dev)->gen >= 7 && !IS_GEN8(dev)) 2067#define HAS_PPGTT(dev) (INTEL_INFO(dev)->gen >= 7 && !IS_GEN8(dev))
2068#define USES_PPGTT(dev) intel_enable_ppgtt(dev, false) 2068#define USES_PPGTT(dev) (i915.enable_ppgtt)
2069#define USES_FULL_PPGTT(dev) intel_enable_ppgtt(dev, true) 2069#define USES_FULL_PPGTT(dev) (i915.enable_ppgtt == 2)
2070 2070
2071#define HAS_OVERLAY(dev) (INTEL_INFO(dev)->has_overlay) 2071#define HAS_OVERLAY(dev) (INTEL_INFO(dev)->has_overlay)
2072#define OVERLAY_NEEDS_PHYSICAL(dev) (INTEL_INFO(dev)->overlay_needs_physical) 2072#define OVERLAY_NEEDS_PHYSICAL(dev) (INTEL_INFO(dev)->overlay_needs_physical)
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 1411613f2174..b4b7cfd226b7 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -33,17 +33,6 @@
33static void bdw_setup_private_ppat(struct drm_i915_private *dev_priv); 33static void bdw_setup_private_ppat(struct drm_i915_private *dev_priv);
34static void chv_setup_private_ppat(struct drm_i915_private *dev_priv); 34static void chv_setup_private_ppat(struct drm_i915_private *dev_priv);
35 35
36bool intel_enable_ppgtt(struct drm_device *dev, bool full)
37{
38 if (i915.enable_ppgtt == 0)
39 return false;
40
41 if (i915.enable_ppgtt == 1 && full)
42 return false;
43
44 return true;
45}
46
47static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt) 36static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
48{ 37{
49 if (enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev)) 38 if (enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev))
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
index 8d6f7c18c404..666c938a51e3 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.h
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
@@ -272,7 +272,6 @@ void i915_gem_init_global_gtt(struct drm_device *dev);
272void i915_gem_setup_global_gtt(struct drm_device *dev, unsigned long start, 272void i915_gem_setup_global_gtt(struct drm_device *dev, unsigned long start,
273 unsigned long mappable_end, unsigned long end); 273 unsigned long mappable_end, unsigned long end);
274 274
275bool intel_enable_ppgtt(struct drm_device *dev, bool full);
276int i915_gem_init_ppgtt(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt); 275int i915_gem_init_ppgtt(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt);
277 276
278void i915_check_and_clear_faults(struct drm_device *dev); 277void i915_check_and_clear_faults(struct drm_device *dev);