From: Ville Syrjälä Date: Thu, 16 Dec 2021 11:08:22 +0000 (+0200) Subject: drm/i915/fbc: Remember to update FBC state even when not reallocating CFB X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c65fe9cbbfd61dbc12868f9ed4940c80fcb249e8;p=linux.git drm/i915/fbc: Remember to update FBC state even when not reallocating CFB We mustn't forget to update our FBC state even if we don't have to reallocate the CFB. Otherwise we won't refresh our notion of what eg. the new fence or the new override CFB stride should be. Using the wrong CFB stride in particular can cause underruns and could even corrupt other stuff in stolen. Fixes: f4cfdbb02ca8 ("drm/i915/fbc: Nuke state_cache") Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4774 Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20211216110822.8461-1-ville.syrjala@linux.intel.com Reviewed-by: Mika Kahola (cherry picked from commit 798c5daf3cddff3f39c5542a50a2dbd83879b05d) Signed-off-by: Jani Nikula --- diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c index 8be01b93015fd..160fd2bdafe59 100644 --- a/drivers/gpu/drm/i915/display/intel_fbc.c +++ b/drivers/gpu/drm/i915/display/intel_fbc.c @@ -1384,8 +1384,10 @@ static void __intel_fbc_enable(struct intel_atomic_state *state, if (fbc->state.plane != plane) return; - if (intel_fbc_is_ok(plane_state)) + if (intel_fbc_is_ok(plane_state)) { + intel_fbc_update_state(state, crtc, plane); return; + } __intel_fbc_disable(fbc); }