diff options
| author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2025-09-23 20:19:24 +0300 |
|---|---|---|
| committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2025-10-11 02:48:26 +0300 |
| commit | 663cb3e9b4e814ad3d41ae979e3de49c4f4ba44f (patch) | |
| tree | 8a157d2373c60768304766b623641270ab5e2d95 | |
| parent | b8459c3b6e96137527dea2164b816bf267867e4a (diff) | |
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ä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250923171943.7319-3-ville.syrjala@linux.intel.com
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_crtc.c | 21 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_crtc.h | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c index ea735f76107b..7b39c3a5887c 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 eae88e604e08..cee09e7cd3dc 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 |