summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2021-12-16 13:08:22 +0200
committerJani Nikula <jani.nikula@intel.com>2021-12-27 11:46:48 +0200
commitc65fe9cbbfd61dbc12868f9ed4940c80fcb249e8 (patch)
tree9cb40b8997ba2bca8c5a9412833241954f500ee8
parent040bf2a9446f6ba267225d34dc4a9b14d11e5092 (diff)
drm/i915/fbc: Remember to update FBC state even when not reallocating CFBdrm-intel-next-fixes-2021-12-29
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> (cherry picked from commit 798c5daf3cddff3f39c5542a50a2dbd83879b05d) Signed-off-by: Jani Nikula <jani.nikula@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 8be01b93015f..160fd2bdafe5 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);
}