summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2025-09-19 22:29:49 +0300
committerVille Syrjälä <ville.syrjala@linux.intel.com>2025-09-23 18:09:21 +0300
commit8ebb8e1a0ef84bc672105d07b8d9fd3ebbda6427 (patch)
treeecf5913c69f9cfad9e81a13f604db04cc0bf170c
parenta1d0a0549d425cb21e2be4b7fd4f76e0379e6f2d (diff)
downloadlinux-8ebb8e1a0ef84bc672105d07b8d9fd3ebbda6427.tar.xz
drm/i915: Apply the 16Gb DIMM w/a only for the platforms that need it
Currently the code assumes that every platform except dg2 need the 16Gb DIMM w/a, while in reality it's only needed by skl and icl (and derivatives). Switch to a more specific platform check. Reviewed-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250919193000.17665-3-ville.syrjala@linux.intel.com
-rw-r--r--drivers/gpu/drm/i915/display/skl_watermark.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index 83ec42646e82..2bf334fe63c9 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -3174,11 +3174,19 @@ void skl_watermark_ipc_init(struct intel_display *display)
skl_watermark_ipc_update(display);
}
+static bool need_16gb_dimm_wa(struct intel_display *display)
+{
+ const struct dram_info *dram_info = intel_dram_info(display->drm);
+
+ return (display->platform.skylake || display->platform.kabylake ||
+ display->platform.coffeelake || display->platform.cometlake ||
+ DISPLAY_VER(display) == 11) && dram_info->has_16gb_dimms;
+}
+
static void
adjust_wm_latency(struct intel_display *display,
u16 wm[], int num_levels, int read_latency)
{
- const struct dram_info *dram_info = intel_dram_info(display->drm);
int i, level;
/*
@@ -3214,7 +3222,7 @@ adjust_wm_latency(struct intel_display *display,
* any underrun. If not able to get DIMM info assume 16Gb+ DIMM
* to avoid any underrun.
*/
- if (!display->platform.dg2 && dram_info->has_16gb_dimms)
+ if (need_16gb_dimm_wa(display))
wm[0] += 1;
}