aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-09-19 06:56:27 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-09-19 11:58:42 -0400
commit1893a71b1eba79a46ac5b356208e80f822543fa4 (patch)
tree51b93ccbc1e74cd936d5bba6f9212ac485bec277
parent00caf0199f66871b0e2c28d7c2079de0ce1d646c (diff)
drm/i915: Inline feature detection into sanitize_enable_ppgtt
Rather than splitting and hiding away critical parts of sanitize_enable_ppgtt() into single use macros in the headers, inline them into the function for clarity. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h2
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c14
2 files changed, 11 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 03f59ecbb200..5fce16c9d647 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2139,8 +2139,6 @@ struct drm_i915_cmd_table {
2139 2139
2140#define HAS_HW_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 6) 2140#define HAS_HW_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 6)
2141#define HAS_LOGICAL_RING_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 8) 2141#define HAS_LOGICAL_RING_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 8)
2142#define HAS_ALIASING_PPGTT(dev) (INTEL_INFO(dev)->gen >= 6)
2143#define HAS_PPGTT(dev) (INTEL_INFO(dev)->gen >= 7 && !IS_GEN8(dev))
2144#define USES_PPGTT(dev) (i915.enable_ppgtt) 2142#define USES_PPGTT(dev) (i915.enable_ppgtt)
2145#define USES_FULL_PPGTT(dev) (i915.enable_ppgtt == 2) 2143#define USES_FULL_PPGTT(dev) (i915.enable_ppgtt == 2)
2146 2144
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index a234446a8678..90c9bf6e71b7 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -35,13 +35,21 @@ static void chv_setup_private_ppat(struct drm_i915_private *dev_priv);
35 35
36static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt) 36static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
37{ 37{
38 if (enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev)) 38 bool has_aliasing_ppgtt;
39 bool has_full_ppgtt;
40
41 has_aliasing_ppgtt = INTEL_INFO(dev)->gen >= 6;
42 has_full_ppgtt = INTEL_INFO(dev)->gen >= 7;
43 if (IS_GEN8(dev))
44 has_full_ppgtt = false; /* XXX why? */
45
46 if (enable_ppgtt == 0 || !has_aliasing_ppgtt)
39 return 0; 47 return 0;
40 48
41 if (enable_ppgtt == 1) 49 if (enable_ppgtt == 1)
42 return 1; 50 return 1;
43 51
44 if (enable_ppgtt == 2 && HAS_PPGTT(dev)) 52 if (enable_ppgtt == 2 && has_full_ppgtt)
45 return 2; 53 return 2;
46 54
47#ifdef CONFIG_INTEL_IOMMU 55#ifdef CONFIG_INTEL_IOMMU
@@ -59,7 +67,7 @@ static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
59 return 0; 67 return 0;
60 } 68 }
61 69
62 return HAS_PPGTT(dev) ? 2 : HAS_ALIASING_PPGTT(dev) ? 1 : 0; 70 return has_full_ppgtt ? 2 : has_aliasing_ppgtt ? 1 : 0;
63} 71}
64 72
65 73