summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinod Govindapillai <vinod.govindapillai@intel.com>2025-04-28 14:55:54 +0300
committerVinod Govindapillai <vinod.govindapillai@intel.com>2025-05-05 12:26:31 +0300
commitd66f470f4da9d8a2197305812b6e1bc860575340 (patch)
tree60fd4d61afffadced18db0e330b2a86a9878b0f7
parent308fcf7d63046a0abe99f3c1f514876f3048f99e (diff)
downloadlinux-d66f470f4da9d8a2197305812b6e1bc860575340.tar.xz
drm/i915/display: implement wa_14022269668
As per the WA, fbc stride need to be programmed always for bmg. Display driver handles the need to program the fbc stride using the override stride. So ensure that we always get the override stride in case of bmg v2: re-phrase the commit message. Bspec: 74212 Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Link: https://lore.kernel.org/r/20250428115554.116780-1-vinod.govindapillai@intel.com
-rw-r--r--drivers/gpu/drm/i915/display/intel_fbc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index ce5b1e3f1c20..bed2bba20b55 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -252,9 +252,12 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_s
* Gen9 hw miscalculates cfb stride for linear as
* PLANE_STRIDE*512 instead of PLANE_STRIDE*64, so
* we always need to use the override there.
+ *
+ * wa_14022269668 For bmg, always program the FBC_STRIDE before fbc enable
*/
if (stride != stride_aligned ||
- (DISPLAY_VER(display) == 9 && fb->modifier == DRM_FORMAT_MOD_LINEAR))
+ (DISPLAY_VER(display) == 9 && fb->modifier == DRM_FORMAT_MOD_LINEAR) ||
+ display->platform.battlemage)
return stride_aligned * 4 / 64;
return 0;