From: Ville Syrjälä Date: Tue, 23 Sep 2025 17:19:24 +0000 (+0300) Subject: drm/i915: Introduce intel_crtc_active_changed() and intel_any_crtc_active_changed() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=663cb3e9b4e814ad3d41ae979e3de49c4f4ba44f;p=thirdparty%2Fkernel%2Flinux.git drm/i915: Introduce intel_crtc_active_changed() and intel_any_crtc_active_changed() Introduce helpers that determine whether any crtc is changing its active state. Will be useful for cdclk stuff. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20250923171943.7319-3-ville.syrjala@linux.intel.com Reviewed-by: Mika Kahola --- diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c index ea735f76107b8..7b39c3a5887cb 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc.c +++ b/drivers/gpu/drm/i915/display/intel_crtc.c @@ -774,3 +774,24 @@ bool intel_any_crtc_enable_changed(struct intel_atomic_state *state) return false; } + +bool intel_crtc_active_changed(const struct intel_crtc_state *old_crtc_state, + const struct intel_crtc_state *new_crtc_state) +{ + return old_crtc_state->hw.active != new_crtc_state->hw.active; +} + +bool intel_any_crtc_active_changed(struct intel_atomic_state *state) +{ + const struct intel_crtc_state *old_crtc_state, *new_crtc_state; + struct intel_crtc *crtc; + int i; + + for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, + new_crtc_state, i) { + if (intel_crtc_active_changed(old_crtc_state, new_crtc_state)) + return true; + } + + return false; +} diff --git a/drivers/gpu/drm/i915/display/intel_crtc.h b/drivers/gpu/drm/i915/display/intel_crtc.h index eae88e604e082..cee09e7cd3dc2 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc.h +++ b/drivers/gpu/drm/i915/display/intel_crtc.h @@ -61,5 +61,8 @@ void intel_crtc_wait_for_next_vblank(struct intel_crtc *crtc); bool intel_any_crtc_enable_changed(struct intel_atomic_state *state); bool intel_crtc_enable_changed(const struct intel_crtc_state *old_crtc_state, const struct intel_crtc_state *new_crtc_state); +bool intel_any_crtc_active_changed(struct intel_atomic_state *state); +bool intel_crtc_active_changed(const struct intel_crtc_state *old_crtc_state, + const struct intel_crtc_state *new_crtc_state); #endif