> -----Original Message-----
> From: Intel-gfx <[email protected]> On Behalf Of Ville
> Syrjala
> Sent: Wednesday, November 24, 2021 1:37 PM
> To: [email protected]
> Subject: [Intel-gfx] [PATCH 09/20] drm/i915/fbc: Flatten
> __intel_fbc_pre_update()
> 
> From: Ville Syrjälä <[email protected]>
> 
> Use an early return to flatten most of __intel_fbc_pre_update().
> 
> Signed-off-by: Ville Syrjälä <[email protected]>

Reviewed-by: Mika Kahola <[email protected]>

> ---
>  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

Reply via email to