> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Ville > Syrjala > Sent: Wednesday, November 24, 2021 1:37 PM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Subject: [PATCH 09/20] drm/i915/fbc: Flatten > __intel_fbc_pre_update() > > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Use an early return to flatten most of __intel_fbc_pre_update(). > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Mika Kahola <mika.kahola@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_fbc.c | 40 ++++++++++++------------ > 1 file changed, 20 insertions(+), 20 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c > b/drivers/gpu/drm/i915/display/intel_fbc.c > index cf7fc0de6081..0bef3b948670 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbc.c > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c > @@ -1223,27 +1223,27 @@ static bool __intel_fbc_pre_update(struct > intel_atomic_state *state, > intel_fbc_update_state_cache(state, crtc, plane); > fbc->flip_pending = true; > > - if (!intel_fbc_can_flip_nuke(state, crtc, plane)) { > - intel_fbc_deactivate(fbc, "update pending"); > + if (intel_fbc_can_flip_nuke(state, crtc, plane)) > + return need_vblank_wait; > > - /* > - * Display WA #1198: glk+ > - * Need an extra vblank wait between FBC disable and most > plane > - * updates. Bspec says this is only needed for plane disable, but > - * that is not true. Touching most plane registers will cause the > - * corruption to appear. Also SKL/derivatives do not seem to be > - * affected. > - * > - * TODO: could optimize this a bit by sampling the frame > - * counter when we disable FBC (if it was already done earlier) > - * and skipping the extra vblank wait before the plane update > - * if at least one frame has already passed. > - */ > - if (fbc->activated && > - DISPLAY_VER(i915) >= 10) > - need_vblank_wait = true; > - fbc->activated = false; > - } > + intel_fbc_deactivate(fbc, "update pending"); > + > + /* > + * Display WA #1198: glk+ > + * Need an extra vblank wait between FBC disable and most plane > + * updates. Bspec says this is only needed for plane disable, but > + * that is not true. Touching most plane registers will cause the > + * corruption to appear. Also SKL/derivatives do not seem to be > + * affected. > + * > + * TODO: could optimize this a bit by sampling the frame > + * counter when we disable FBC (if it was already done earlier) > + * and skipping the extra vblank wait before the plane update > + * if at least one frame has already passed. > + */ > + if (fbc->activated && DISPLAY_VER(i915) >= 10) > + need_vblank_wait = true; > + fbc->activated = false; > > return need_vblank_wait; > } > -- > 2.32.0