summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2021-12-16 13:08:22 +0200
committerVille Syrjälä <ville.syrjala@linux.intel.com>2021-12-23 14:06:32 +0200
commit798c5daf3cddff3f39c5542a50a2dbd83879b05d (patch)
tree0941f832437682a2e7f0dee490a9018e5310935c
parent980f42e7d57464af190d05b9cc0bc21846734f48 (diff)
downloadlinux-798c5daf3cddff3f39c5542a50a2dbd83879b05d.tar.bz2
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ä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20211216110822.8461-1-ville.syrjala@linux.intel.com Reviewed-by: Mika Kahola <mika.kahola@intel.com>
-rw-r--r--drivers/gpu/drm/i915/display/intel_fbc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 8b9acedcdfc1..7fd11d735ca4 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -1408,8 +1408,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);
}