Skip to content

Commit df5e31c

Browse files
vsyrjalajlahtine-intel
authored andcommitted
drm/i915: Fix ilk+ watermarks when disabling pipes
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 b6b178a ("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. Cc: stable@vger.kernel.org Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Fixes: b6b178a ("drm/i915: Calculate ironlake intermediate watermarks correctly, v2.") Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181025130536.29024-1-ville.syrjala@linux.intel.com Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> #irc (cherry picked from commit a748fae) Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
1 parent 6a8915d commit df5e31c

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

drivers/gpu/drm/i915/intel_display.c

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12768,17 +12768,12 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
1276812768
intel_check_cpu_fifo_underruns(dev_priv);
1276912769
intel_check_pch_fifo_underruns(dev_priv);
1277012770

12771-
if (!new_crtc_state->active) {
12772-
/*
12773-
* Make sure we don't call initial_watermarks
12774-
* for ILK-style watermark updates.
12775-
*
12776-
* No clue what this is supposed to achieve.
12777-
*/
12778-
if (INTEL_GEN(dev_priv) >= 9)
12779-
dev_priv->display.initial_watermarks(intel_state,
12780-
to_intel_crtc_state(new_crtc_state));
12781-
}
12771+
/* FIXME unify this for all platforms */
12772+
if (!new_crtc_state->active &&
12773+
!HAS_GMCH_DISPLAY(dev_priv) &&
12774+
dev_priv->display.initial_watermarks)
12775+
dev_priv->display.initial_watermarks(intel_state,
12776+
to_intel_crtc_state(new_crtc_state));
1278212777
}
1278312778
}
1278412779

0 commit comments

Comments
 (0)