[Intel-gfx] [PATCH] drm/i915: Don't zero out the Y plane's watermarks

Lisovskiy, Stanislav stanislav.lisovskiy at intel.com
Thu Apr 8 09:48:42 UTC 2021


On Sat, Mar 27, 2021 at 02:59:45AM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Don't zero out the watermarks for the Y plane since we've already
> computed them when computing the UV plane's watermarks (since the
> UV plane always appears before ethe Y plane when iterating through
> the planes).
> 
> This leads to allocating no DDB for the Y plane since .min_ddb_alloc
> also gets zeroed. And that of course leads to underruns when scanning
> out planar formats.
> 
> We really need to re-enable the pre-merge pixel format tests or else
> I'll just keep breaking this stuff...

Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>

> 
> Cc: stable at vger.kernel.org
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
> Fixes: dbf71381d733 ("drm/i915: Nuke intel_atomic_crtc_state_for_each_plane_state() from skl+ wm code")
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_pm.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index b2aede2be89d..49c19acdb7c6 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5511,12 +5511,12 @@ static int icl_build_plane_wm(struct intel_crtc_state *crtc_state,
>  	struct skl_plane_wm *wm = &crtc_state->wm.skl.raw.planes[plane_id];
>  	int ret;
>  
> -	memset(wm, 0, sizeof(*wm));
> -
>  	/* Watermarks calculated in master */
>  	if (plane_state->planar_slave)
>  		return 0;
>  
> +	memset(wm, 0, sizeof(*wm));
> +
>  	if (plane_state->planar_linked_plane) {
>  		const struct drm_framebuffer *fb = plane_state->hw.fb;
>  		enum plane_id y_plane_id = plane_state->planar_linked_plane->id;
> -- 
> 2.26.2
> 


More information about the Intel-gfx mailing list