Re: [RFC 19/31] drm/i915: Store intel_gt backpointer in vm

Rodrigo Vivi
2019-06-14T17:34:26Z

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

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

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx