drm/i915: Use old mbus_join value when increasing CDCLK
authorStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Tue, 2 Apr 2024 15:50:12 +0000 (18:50 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 4 Apr 2024 13:28:53 +0000 (16:28 +0300)
In order to make sure we are not breaking the proper sequence
let's do updates step by step and don't change MBUS join value
during MDCLK/CDCLK programming stage.
MBUS join programming would be taken care by pre/post ddb hooks.

v2: - Reworded comment about using old mbus_join value in
      intel_set_cdclk(Ville Syrjälä)

Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
[v3: vsyrjala: rebase on top of cdclk changes, reword a bit more]
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240402155016.13733-11-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_cdclk.c

index ed8d9ee094b8542ff0b0341cb331d7f52bd9d4c3..e0c69d85e7338ed6dd2f9bb2e4e56f73b2c14250 100644 (file)
@@ -2617,6 +2617,12 @@ intel_set_cdclk_pre_plane_update(struct intel_atomic_state *state)
                                                 old_cdclk_state->actual.voltage_level);
        }
 
+       /*
+        * mbus joining will be changed later by
+        * intel_dbuf_mbus_{pre,post}_ddb_update()
+        */
+       cdclk_config.joined_mbus = old_cdclk_state->actual.joined_mbus;
+
        drm_WARN_ON(&i915->drm, !new_cdclk_state->base.changed);
 
        intel_set_cdclk(i915, &cdclk_config, pipe,