[PATCH] drm/i915: Read WM before sanitize_encoder/crtc calls

Daniel Vetter daniel.vetter at ffwll.ch
Wed Aug 5 07:46:38 PDT 2015


If we shut down the crtc we might run into WM consistency checks which
fail because we haven't yet read out the WM state. So do that before
we sanitized the state.

This fixes a WARNING in the ilk wm code which assumes that level 0 WM
are always enabled in it's internal tracking. But since we start out
with all 0 in our driver structures the relevant boolean is false when
loading. This regression was introduced in

commit 0b2ae6d72e445b58ae39cfa6ec0b8d3f53ff7a6f
Author: Ville Syrjälä <ville.syrjala at linux.intel.com>
Date:   Wed Oct 9 19:17:55 2013 +0300

    drm/i915: Add intel_pipe_wm and prepare for watermark pre-compute

which added the WARN_ON(!r->enabel).

Cc: Theodore Ts'o <tytso at mit.edu>
Reported-by: Theodore Ts'o <tytso at mit.edu>
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
---
Re-ping for testing so that I can merge this patch and send a pull to
Linus.
-Daniel
---
 drivers/gpu/drm/i915/intel_display.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 30e0f54ba19d..ae07fd0c395c 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15121,6 +15121,11 @@ void intel_modeset_setup_hw_state(struct drm_device *dev,
 
 	intel_modeset_readout_hw_state(dev);
 
+	if (IS_GEN9(dev))
+		skl_wm_get_hw_state(dev);
+	else if (HAS_PCH_SPLIT(dev))
+		ilk_wm_get_hw_state(dev);
+
 	/*
 	 * Now that we have the config, copy it to each CRTC struct
 	 * Note that this could go away if we move to using crtc_config
@@ -15162,11 +15167,6 @@ void intel_modeset_setup_hw_state(struct drm_device *dev,
 		pll->on = false;
 	}
 
-	if (IS_GEN9(dev))
-		skl_wm_get_hw_state(dev);
-	else if (HAS_PCH_SPLIT(dev))
-		ilk_wm_get_hw_state(dev);
-
 	if (force_restore) {
 		i915_redisable_vga(dev);
 
-- 
2.5.0



More information about the dri-devel mailing list