return IS_DISPLAY_VERx100(display, 1100, 1400);
case INTEL_DISPLAY_WA_15018326506:
return display->platform.battlemage;
+ case INTEL_DISPLAY_WA_14025769978:
+ return DISPLAY_VER(display) == 35;
default:
drm_WARN(display->drm, 1, "Missing Wa number: %s\n", name);
break;
INTEL_DISPLAY_WA_14011503117,
INTEL_DISPLAY_WA_22014263786,
INTEL_DISPLAY_WA_15018326506,
+ INTEL_DISPLAY_WA_14025769978,
};
bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char *name);
lockdep_assert_held(&display->fbc.sys_cache.lock);
- /* Cache read enable is set by default */
- reg |= FBC_SYS_CACHE_READ_ENABLE;
+ /*
+ * Wa_14025769978:
+ * Fixes: SoC hardware issue in read caching
+ * Workaround: disable cache read setting which is enabled by default.
+ */
+ if (!intel_display_wa(display, 14025769978))
+ /* Cache read enable is set by default */
+ reg |= FBC_SYS_CACHE_READ_ENABLE;
intel_de_write(display, XE3P_LPD_FBC_SYS_CACHE_USAGE_CFG, reg);