[PATCH 04/12] drm/{i915, xe}: Avoid direct inspection of dpt_vma from outside dpt

Cavitt, Jonathan jonathan.cavitt at intel.com
Thu Jul 11 18:38:03 UTC 2024


-----Original Message-----
From: Intel-xe <intel-xe-bounces at lists.freedesktop.org> On Behalf Of Rodrigo Vivi
Sent: Thursday, July 11, 2024 10:12 AM
To: intel-xe at lists.freedesktop.org
Cc: Vivi, Rodrigo <rodrigo.vivi at intel.com>; Brost, Matthew <matthew.brost at intel.com>; Maarten Lankhorst <maarten.lankhorst at linux.intel.com>; Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
Subject: [PATCH 04/12] drm/{i915, xe}: Avoid direct inspection of dpt_vma from outside dpt
> 
> DPT code is so dependent on i915 vma implementation and it is not
> ported yet to Xe.
> 
> This patch limits inspection to DPT's VMA struct to intel_dpt
> component only, so the Xe GGTT code can evolve.
> 
> Cc: Matthew Brost <matthew.brost at intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

LGTM.
Reviewed-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
-Jonathan Cavitt

> ---
>  drivers/gpu/drm/i915/display/intel_dpt.c           | 4 ++++
>  drivers/gpu/drm/i915/display/intel_dpt.h           | 1 +
>  drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 ++-
>  drivers/gpu/drm/xe/display/xe_fb_pin.c             | 9 +++++++--
>  4 files changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
> index 73a1918e2537..3a6d99044828 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
> @@ -317,3 +317,7 @@ void intel_dpt_destroy(struct i915_address_space *vm)
>  	i915_vm_put(&dpt->vm);
>  }
>  
> +u64 intel_dpt_offset(struct i915_vma *dpt_vma)
> +{
> +	return dpt_vma->node.start;
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.h b/drivers/gpu/drm/i915/display/intel_dpt.h
> index ff18a525bfbe..7336e905142d 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpt.h
> +++ b/drivers/gpu/drm/i915/display/intel_dpt.h
> @@ -20,5 +20,6 @@ void intel_dpt_suspend(struct drm_i915_private *i915);
>  void intel_dpt_resume(struct drm_i915_private *i915);
>  struct i915_address_space *
>  intel_dpt_create(struct intel_framebuffer *fb);
> +u64 intel_dpt_offset(struct i915_vma *dpt_vma);
>  
>  #endif /* __INTEL_DPT_H__ */
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index ba5a628b4757..1cf1d5c8b9dc 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -14,6 +14,7 @@
>  #include "intel_de.h"
>  #include "intel_display_irq.h"
>  #include "intel_display_types.h"
> +#include "intel_dpt.h"
>  #include "intel_fb.h"
>  #include "intel_fbc.h"
>  #include "intel_frontbuffer.h"
> @@ -1162,7 +1163,7 @@ static u32 skl_surf_address(const struct intel_plane_state *plane_state,
>  		 * within the DPT is always 0.
>  		 */
>  		drm_WARN_ON(&i915->drm, plane_state->dpt_vma &&
> -			    plane_state->dpt_vma->node.start);
> +			    intel_dpt_offset(plane_state->dpt_vma));
>  		drm_WARN_ON(&i915->drm, offset & 0x1fffff);
>  		return offset >> 9;
>  	} else {
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index d7db44e79eaf..42d431ff14e7 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -377,8 +377,8 @@ void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
>  }
>  
>  /*
> - * For Xe introduce dummy intel_dpt_create which just return NULL and
> - * intel_dpt_destroy which does nothing.
> + * For Xe introduce dummy intel_dpt_create which just return NULL,
> + * intel_dpt_destroy which does nothing, and fake intel_dpt_ofsset returning 0;
>   */
>  struct i915_address_space *intel_dpt_create(struct intel_framebuffer *fb)
>  {
> @@ -389,3 +389,8 @@ void intel_dpt_destroy(struct i915_address_space *vm)
>  {
>  	return;
>  }
> +
> +u64 intel_dpt_offset(struct i915_vma *dpt_vma)
> +{
> +	return 0;
> +}
> -- 
> 2.45.2
> 
> 


More information about the Intel-xe mailing list