[Intel-gfx] [PATCH v3] drm/i915: Fix inconsistance between pfit.enable and scaler freeing

Chris Wilson chris at chris-wilson.co.uk
Mon Jan 27 13:18:25 UTC 2020


Quoting Ville Syrjälä (2020-01-24 18:15:30)
> On Fri, Jan 24, 2020 at 07:23:01PM +0200, Stanislav Lisovskiy wrote:
> > Despite that during hw readout we seem to have scalers assigned
> > to pipes, then call atomic_setup_scalers, at the commit stage in
> > skl_update_scaler there is a check, that if we have fb src and
> > dest of same size, we stage freeing of that scaler.
> > 
> > However we don't update pfit.enabled flag then, which makes
> > the state inconsistent, which in turn triggers a WARN_ON
> > in skl_pfit_enable, because we have pfit enabled,
> > but no assigned scaler.
> 
> And the reason for not having updates pfit.enabled is that the
> the modeset was forced by a cdclk change and thus the full state
> recomputation never happened and we're left with the inherited
> pfit.enabled.
> 
> > 
> > To me this looks weird that we kind of do the decision
> > to use or not use the scaler at skl_update_scaler stage
> > but not in intel_atomic_setup_scalers, moreover
> > not updating the whole state consistently.
> > 
> > This fix is to not free the scaler if we have pfit.enabled
> > flag set, so that the state is now consistent
> > and the warnings are gone.
> > 
> > v2: - Put pfit.enable check into crtc specific place
> >       (Ville Syrjälä)
> > 
> > Bugzilla: https://gitlab.freedesktop.org/drm/intel/issues/577
> 
> Closes: ...

Sigh, should have checked first.

By special request of Tomi,
Tested-by: Tomi Sarvela <tomi.p.sarvela at intel.com>

I pushed. Thanks for the patch,
-Chris


More information about the Intel-gfx mailing list