Re: [PATCH v2 7/9] drm/i915/mtl: Add MTL for remapping CCS FBs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 21, 2023 at 11:35:05PM -0800, Radhakrishna Sripada wrote:
> From: Clint Taylor <clinton.a.taylor@xxxxxxxxx>
> 
>     Add support for remapping CCS FBs on MTL to remove the restriction
>     of the power-of-two sized stride and the 2MB surface offset alignment
>     for these FBs.

There's strange/unwanted indentation here...

The "Add MTL for..." part of the title also seems confusing to me.  It
might be worth rewording?

> 
> Signed-off-by: Clint Taylor <clinton.a.taylor@xxxxxxxxx>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/display/intel_fb.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index 799bdc81a6a9..fc4cb829e8af 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -1189,7 +1189,8 @@ bool intel_fb_needs_pot_stride_remap(const struct intel_framebuffer *fb)
>  {
>  	struct drm_i915_private *i915 = to_i915(fb->base.dev);
>  
> -	return IS_ALDERLAKE_P(i915) && fb->base.modifier != DRM_FORMAT_MOD_LINEAR;
> +	return (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14) &&

We're updating this condition in a few places (and may need to update it
again in the future); it might be worth creating a feature flag for
this, since I'm not sure if it's definitely going to carry forward to
all future platforms.


Matt

> +	       fb->base.modifier != DRM_FORMAT_MOD_LINEAR;
>  }
>  
>  static int intel_fb_pitch(const struct intel_framebuffer *fb, int color_plane, unsigned int rotation)
> @@ -1325,9 +1326,10 @@ plane_view_scanout_stride(const struct intel_framebuffer *fb, int color_plane,
>  			  unsigned int tile_width,
>  			  unsigned int src_stride_tiles, unsigned int dst_stride_tiles)
>  {
> +	struct drm_i915_private *i915 = to_i915(fb->base.dev);
>  	unsigned int stride_tiles;
>  
> -	if (IS_ALDERLAKE_P(to_i915(fb->base.dev)))
> +	if (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14)
>  		stride_tiles = src_stride_tiles;
>  	else
>  		stride_tiles = dst_stride_tiles;
> @@ -1521,7 +1523,8 @@ static void intel_fb_view_init(struct drm_i915_private *i915, struct intel_fb_vi
>  	memset(view, 0, sizeof(*view));
>  	view->gtt.type = view_type;
>  
> -	if (view_type == I915_GTT_VIEW_REMAPPED && IS_ALDERLAKE_P(i915))
> +	if (view_type == I915_GTT_VIEW_REMAPPED &&
> +	    (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14))
>  		view->gtt.remapped.plane_alignment = SZ_2M / PAGE_SIZE;
>  }
>  
> -- 
> 2.34.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux