[Intel-gfx] [RFC 19/31] drm/i915: Store intel_gt backpointer in vm

Rodrigo Vivi rodrigo.vivi at intel.com
Fri Jun 14 17:34:51 UTC 2019


On Fri, Jun 14, 2019 at 04:17:19PM +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> 
> This will come useful in the following patch.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

an individual commit message would be better, but let's focus
on the content:

Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 16 ++++++++++------
>  drivers/gpu/drm/i915/i915_gem_gtt.h |  1 +
>  2 files changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 95af45156cc2..0bc75c963955 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -1587,9 +1587,11 @@ static int gen8_preallocate_top_level_pdp(struct i915_ppgtt *ppgtt)
>  	return -ENOMEM;
>  }
>  
> -static void ppgtt_init(struct drm_i915_private *i915,
> -		       struct i915_ppgtt *ppgtt)
> +static void ppgtt_init(struct i915_ppgtt *ppgtt, struct intel_gt *gt)
>  {
> +	struct drm_i915_private *i915 = gt->i915;
> +
> +	ppgtt->vm.gt = gt;
>  	ppgtt->vm.i915 = i915;
>  	ppgtt->vm.dma = &i915->drm.pdev->dev;
>  	ppgtt->vm.total = BIT_ULL(INTEL_INFO(i915)->ppgtt_size);
> @@ -1618,7 +1620,7 @@ static struct i915_ppgtt *gen8_ppgtt_create(struct drm_i915_private *i915)
>  	if (!ppgtt)
>  		return ERR_PTR(-ENOMEM);
>  
> -	ppgtt_init(i915, ppgtt);
> +	ppgtt_init(ppgtt, &i915->gt);
>  
>  	/*
>  	 * From bdw, there is hw support for read-only pages in the PPGTT.
> @@ -2155,7 +2157,7 @@ static struct i915_ppgtt *gen6_ppgtt_create(struct drm_i915_private *i915)
>  	if (!ppgtt)
>  		return ERR_PTR(-ENOMEM);
>  
> -	ppgtt_init(i915, &ppgtt->base);
> +	ppgtt_init(&ppgtt->base, &i915->gt);
>  
>  	ppgtt->base.vm.allocate_va_range = gen6_alloc_va_range;
>  	ppgtt->base.vm.clear_range = gen6_ppgtt_clear_range;
> @@ -3502,10 +3504,12 @@ static int i915_gmch_probe(struct i915_ggtt *ggtt)
>  	return 0;
>  }
>  
> -static int ggtt_probe_hw(struct i915_ggtt *ggtt, struct drm_i915_private *i915)
> +static int ggtt_probe_hw(struct i915_ggtt *ggtt, struct intel_gt *gt)
>  {
> +	struct drm_i915_private *i915 = gt->i915;
>  	int ret;
>  
> +	ggtt->vm.gt = gt;
>  	ggtt->vm.i915 = i915;
>  	ggtt->vm.dma = &i915->drm.pdev->dev;
>  
> @@ -3551,7 +3555,7 @@ int i915_ggtt_probe_hw(struct drm_i915_private *i915)
>  {
>  	int ret;
>  
> -	ret = ggtt_probe_hw(&i915->ggtt, i915);
> +	ret = ggtt_probe_hw(&i915->ggtt, &i915->gt);
>  	if (ret)
>  		return ret;
>  
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
> index b541190db6e8..9a3d96370f07 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
> @@ -297,6 +297,7 @@ struct i915_address_space {
>  	struct kref ref;
>  
>  	struct drm_mm mm;
> +	struct intel_gt *gt;
>  	struct drm_i915_private *i915;
>  	struct device *dma;
>  	/* Every address space belongs to a struct file - except for the global
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list