RE: [PATCH] drm/i915/xe3: do not configure auto min dbuf for cursor WMs

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

 




> -----Original Message-----
> From: Govindapillai, Vinod <vinod.govindapillai@xxxxxxxxx>
> Sent: Friday, December 13, 2024 5:34 PM
> To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx; intel-xe@xxxxxxxxxxxxxxxxxxxxx
> Cc: Govindapillai, Vinod <vinod.govindapillai@xxxxxxxxx>; Syrjala, Ville
> <ville.syrjala@xxxxxxxxx>; Shankar, Uma <uma.shankar@xxxxxxxxx>; Saarinen,
> Jani <jani.saarinen@xxxxxxxxx>
> Subject: [PATCH] drm/i915/xe3: do not configure auto min dbuf for cursor WMs
> 
> Cursor planes do not have the minimum dbuf confguation. The ddb allocation and

Nit: Typo in configuration.

Change Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@xxxxxxxxx>

> registration routines handle this correctly.
> But the plane wm handling for cursor need to be differentiated for this case. Auto
> minimum buf enable flag should not be enabled for cursor wm registers in xe3.
> 
> Fixes: a831920c370c ("drm/i915/xe3: Use hw support for min/interim ddb
> allocations for async flip")
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/display/skl_watermark.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c
> b/drivers/gpu/drm/i915/display/skl_watermark.c
> index d3506e8ccd9b..29e8ea91c858 100644
> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> @@ -1922,10 +1922,11 @@ static int skl_wm_max_lines(struct
> drm_i915_private *i915)
>  		return 31;
>  }
> 
> -static bool xe3_auto_min_alloc_capable(struct intel_display *display,
> -				       int level)
> +static bool xe3_auto_min_alloc_capable(struct intel_plane *plane, int
> +level)
>  {
> -	return DISPLAY_VER(display) >= 30 && level == 0;
> +	struct intel_display *display = to_intel_display(plane);
> +
> +	return DISPLAY_VER(display) >= 30 && level == 0 && plane->id !=
> +PLANE_CURSOR;
>  }
> 
>  static void skl_compute_plane_wm(const struct intel_crtc_state *crtc_state,
> @@ -1937,7 +1938,6 @@ static void skl_compute_plane_wm(const struct
> intel_crtc_state *crtc_state,
>  				 struct skl_wm_level *result /* out */)  {
>  	struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev);
> -	struct intel_display *display = to_intel_display(crtc_state);
>  	uint_fixed_16_16_t method1, method2;
>  	uint_fixed_16_16_t selected_result;
>  	u32 blocks, lines, min_ddb_alloc = 0;
> @@ -2061,7 +2061,7 @@ static void skl_compute_plane_wm(const struct
> intel_crtc_state *crtc_state,
>  	/* Bspec says: value >= plane ddb allocation -> invalid, hence the +1 here
> */
>  	result->min_ddb_alloc = max(min_ddb_alloc, blocks) + 1;
>  	result->enable = true;
> -	result->auto_min_alloc_wm_enable =
> xe3_auto_min_alloc_capable(display, level);
> +	result->auto_min_alloc_wm_enable =
> xe3_auto_min_alloc_capable(plane,
> +level);
> 
>  	if (DISPLAY_VER(i915) < 12 && i915->display.sagv.block_time_us)
>  		result->can_sagv = latency >= i915->display.sagv.block_time_us;
> --
> 2.34.1





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

  Powered by Linux