FAILED: patch "[PATCH] drm/i915: Fix ilk+ watermarks when disabling pipes" failed to apply to 4.14-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
df5e31c204b34e8d9e5ec33f5b28e960c4f25e14Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <[email protected]>
Date: Thu, 25 Oct 2018 16:05:36 +0300
Subject: [PATCH] drm/i915: Fix ilk+ watermarks when disabling pipes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We're no longer programming any watermarks when we're disabling a pipe. That means ilk_wm_merge() & co. will keep considering the any pipe that is getting disabled as still enabled. Thus we either get no LP1+ watermakrs (ilk-ivb), or we get suboptimal ones (hsw-bdw).
This seems to have been broken by commit b6b178a77210 ("drm/i915:
Calculate ironlake intermediate watermarks correctly, v2."). Before that we apparently had some difference between the intermediate and optimal watermarks and so we would program the optiomal ones. Now intermediate and optimal are identical for disabled pipes and so we don't program either.
Fix this by programming the intermediate watermarks even for disabled pipes. We were already doing that for skl+. We'll leave out gmch platforms for now since those do the merging in a different manner and should work as is. We'll want to unify this eventually, but play it safe for now and just put in a FIXME.
drivers/gpu/drm/i915/intel_display.c +6 -11
@@ -12768,17 +12768,12 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)intel_check_cpu_fifo_underruns (dev_priv);intel_check_pch_fifo_underruns (dev_priv); -if (!new_crtc_state->active) { -/* -* Make sure we don't call initial_watermarks -* for ILK-style watermark updates. -* -* No clue what this is supposed to achieve. -*/ -if (INTEL_GEN (dev_priv) >=9 ) - dev_priv->display.initial_watermarks (intel_state, -to_intel_crtc_state (new_crtc_state)); - } +/* FIXME unify this for all platforms */ +if (!new_crtc_state->active && + !HAS_GMCH_DISPLAY (dev_priv) && + dev_priv->display.initial_watermarks) + dev_priv->display.initial_watermarks (intel_state, +to_intel_crtc_state (new_crtc_state)); } }