drm/i915/cdclk: Relocate intel_plane_calc_min_cdclk() calls

There's no reason to defer intel_plane_calc_min_cdclk() until
intel_cdclk_atomic_check(). Just do this as part of
intel_atomic_check_planes() (after we've added all the planes to
the state that affect the per-plane min_cdclk calculation).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250923171943.7319-14-ville.syrjala@linux.intel.com
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
This commit is contained in:
Ville Syrjälä 2025-09-23 20:19:35 +03:00
parent 8f7443ae52
commit a6d20cb1d8
3 changed files with 5 additions and 15 deletions

View File

@ -3307,23 +3307,12 @@ int intel_cdclk_atomic_check(struct intel_atomic_state *state,
{
const struct intel_cdclk_state *old_cdclk_state;
struct intel_cdclk_state *new_cdclk_state;
struct intel_plane_state __maybe_unused *plane_state;
struct intel_plane *plane;
int ret;
int i;
ret = intel_cdclk_modeset_checks(state, need_cdclk_calc);
if (ret)
return ret;
/*
* active_planes bitmask has been updated, and potentially affected
* planes are part of the state. We can now compute the minimum cdclk
* for each plane.
*/
for_each_new_intel_plane_in_state(state, plane, plane_state, i)
intel_plane_calc_min_cdclk(state, plane);
ret = intel_crtcs_calc_min_cdclk(state, need_cdclk_calc);
if (ret)
return ret;

View File

@ -291,8 +291,8 @@ intel_plane_relative_data_rate(const struct intel_crtc_state *crtc_state,
rel_data_rate);
}
void intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
struct intel_plane *plane)
static void intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
struct intel_plane *plane)
{
const struct intel_plane_state *plane_state =
intel_atomic_get_new_plane_state(state, plane);
@ -1700,5 +1700,8 @@ int intel_plane_atomic_check(struct intel_atomic_state *state)
return ret;
}
for_each_new_intel_plane_in_state(state, plane, plane_state, i)
intel_plane_calc_min_cdclk(state, plane);
return 0;
}

View File

@ -69,8 +69,6 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
struct intel_crtc_state *crtc_state,
const struct intel_plane_state *old_plane_state,
struct intel_plane_state *intel_state);
void intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
struct intel_plane *plane);
int intel_plane_check_clipping(struct intel_plane_state *plane_state,
struct intel_crtc_state *crtc_state,
int min_scale, int max_scale,