drm/i915: Do wm readout ealier for skl+
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 6 Mar 2025 16:34:18 +0000 (18:34 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 7 Mar 2025 17:02:58 +0000 (19:02 +0200)
Move the wm readout to happen earlier. This is needed because
the bw_state readout will need ddb information populated by
the wm readout.

For now limit this to skl+ as I've not really analyzed the
implications of doing this on other platforms.

Reviewed-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250306163420.3961-17-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_modeset_setup.c

index 03c0fac..6a4142d 100644 (file)
@@ -880,6 +880,10 @@ static void intel_modeset_readout_hw_state(struct drm_i915_private *i915)
                                                 crtc_state->port_clock);
        }
 
+       /* TODO move here (or even earlier?) on all platforms */
+       if (DISPLAY_VER(display) >= 9)
+               intel_wm_get_hw_state(i915);
+
        intel_bw_update_hw_state(display);
        intel_cdclk_update_hw_state(display);
 
@@ -990,7 +994,9 @@ void intel_modeset_setup_hw_state(struct drm_i915_private *i915,
 
        intel_dpll_sanitize_state(display);
 
-       intel_wm_get_hw_state(i915);
+       /* TODO move earlier on all platforms */
+       if (DISPLAY_VER(display) < 9)
+               intel_wm_get_hw_state(i915);
        intel_wm_sanitize(i915);
 
        for_each_intel_crtc(&i915->drm, crtc) {