From: Ville Syrjälä <[email protected]>

Clean up the mess inside intel_modeset_calc_cdclk() a bit by
moving the intel_atomic_lock_global_state() for force_min_cdclk
changes into intel_cdclk_atomic_check().

Signed-off-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_cdclk.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c 
b/drivers/gpu/drm/i915/display/intel_cdclk.c
index d335cd4bd0e4..c3ff8cbf1d78 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -3228,7 +3228,7 @@ int intel_cdclk_atomic_check(struct intel_atomic_state 
*state,
                             bool *need_cdclk_calc)
 {
        const struct intel_cdclk_state *old_cdclk_state;
-       const struct intel_cdclk_state *new_cdclk_state;
+       struct intel_cdclk_state *new_cdclk_state;
        struct intel_plane_state __maybe_unused *plane_state;
        struct intel_plane *plane;
        int ret;
@@ -3257,8 +3257,13 @@ int intel_cdclk_atomic_check(struct intel_atomic_state 
*state,
        new_cdclk_state = intel_atomic_get_new_cdclk_state(state);
 
        if (new_cdclk_state &&
-           old_cdclk_state->force_min_cdclk != 
new_cdclk_state->force_min_cdclk)
+           old_cdclk_state->force_min_cdclk != 
new_cdclk_state->force_min_cdclk) {
+               ret = intel_atomic_lock_global_state(&new_cdclk_state->base);
+               if (ret)
+                       return ret;
+
                *need_cdclk_calc = true;
+       }
 
        return 0;
 }
@@ -3331,8 +3336,7 @@ int intel_modeset_calc_cdclk(struct intel_atomic_state 
*state)
                ret = 
intel_atomic_serialize_global_state(&new_cdclk_state->base);
                if (ret)
                        return ret;
-       } else if (old_cdclk_state->force_min_cdclk != 
new_cdclk_state->force_min_cdclk ||
-                  intel_cdclk_changed(&old_cdclk_state->logical,
+       } else if (intel_cdclk_changed(&old_cdclk_state->logical,
                                       &new_cdclk_state->logical)) {
                ret = intel_atomic_lock_global_state(&new_cdclk_state->base);
                if (ret)
-- 
2.49.1

Reply via email to