From: Jouni Högander Date: Fri, 1 Sep 2023 09:34:57 +0000 (+0300) Subject: drm/i915/fbc: Clear frontbuffer busy bits on flip X-Git-Tag: v6.7-rc1~145^2~15^2~135 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4f89df198dc17070831af21b74e69ee17352619f;p=thirdparty%2Fkernel%2Flinux.git drm/i915/fbc: Clear frontbuffer busy bits on flip We are planning to move flush performed from work queue. This means it is possible to have invalidate -> flip -> flush sequence. Handle this by clearing possible busy bits on flip. Signed-off-by: Ville Syrjälä Signed-off-by: Jouni Högander Reviewed-by: Luca Coelho Link: https://patchwork.freedesktop.org/patch/msgid/20230901093500.3463046-2-jouni.hogander@intel.com --- diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c index 1c6d467cec267..817e5784660ba 100644 --- a/drivers/gpu/drm/i915/display/intel_fbc.c +++ b/drivers/gpu/drm/i915/display/intel_fbc.c @@ -1307,11 +1307,9 @@ static void __intel_fbc_post_update(struct intel_fbc *fbc) lockdep_assert_held(&fbc->lock); fbc->flip_pending = false; + fbc->busy_bits = 0; - if (!fbc->busy_bits) - intel_fbc_activate(fbc); - else - intel_fbc_deactivate(fbc, "frontbuffer write"); + intel_fbc_activate(fbc); } void intel_fbc_post_update(struct intel_atomic_state *state,