[Intel-gfx] [PATCH] drm/i915: Inline feature detection into sanitize_enable_ppgtt
Daniel Vetter
daniel at ffwll.ch
Fri Sep 19 17:58:19 CEST 2014
On Fri, Sep 19, 2014 at 11:56:27AM +0100, Chris Wilson wrote:
> 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 at chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 2 --
> drivers/gpu/drm/i915/i915_gem_gtt.c | 14 +++++++++++---
> 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 07dafa2c2d8c..b1fa13942d14 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 {
>
> #define HAS_HW_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 6)
> #define HAS_LOGICAL_RING_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 8)
> -#define HAS_ALIASING_PPGTT(dev) (INTEL_INFO(dev)->gen >= 6)
> -#define HAS_PPGTT(dev) (INTEL_INFO(dev)->gen >= 7 && !IS_GEN8(dev))
> #define USES_PPGTT(dev) (i915.enable_ppgtt)
> #define USES_FULL_PPGTT(dev) (i915.enable_ppgtt == 2)
>
> 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);
>
> static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
> {
> - if (enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev))
> + bool has_aliasing_ppgtt;
> + bool has_full_ppgtt;
> +
> + has_aliasing_ppgtt = INTEL_INFO(dev)->gen >= 6;
> + has_full_ppgtt = INTEL_INFO(dev)->gen >= 7;
> + if (IS_GEN8(dev))
> + has_full_ppgtt = false; /* XXX why? */
Becuase we've had a crazy mix of feature macros which also encoded
defaults. But now that's fixed, so we could replace this by a comment
saying that full ppgtt upsets the hw without execlist.
Queued for -next, thanks for the patch.
-Daniel
> +
> + if (enable_ppgtt == 0 || !has_aliasing_ppgtt)
> return 0;
>
> if (enable_ppgtt == 1)
> return 1;
>
> - if (enable_ppgtt == 2 && HAS_PPGTT(dev))
> + if (enable_ppgtt == 2 && has_full_ppgtt)
> return 2;
>
> #ifdef CONFIG_INTEL_IOMMU
> @@ -59,7 +67,7 @@ static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt)
> return 0;
> }
>
> - return HAS_PPGTT(dev) ? 2 : HAS_ALIASING_PPGTT(dev) ? 1 : 0;
> + return has_full_ppgtt ? 2 : has_aliasing_ppgtt ? 1 : 0;
> }
>
>
> --
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the Intel-gfx
mailing list