> -----Original Message-----
> From: Intel-xe <[email protected]> On Behalf Of Imre
> Deak
> Sent: Wednesday, June 17, 2026 1:39 AM
> To: [email protected]; [email protected]
> Subject: [PATCH v2 27/28] drm/i915/dp_link_caps: Pass link_caps to config
> update/lookup helpers
>
> Pass the link_caps pointer to the update/lookup helpers in
> intel_dp_link_caps.c, as it holds the state with the relevant information.
>
> Signed-off-by: Imre Deak <[email protected]>
> ---
> drivers/gpu/drm/i915/display/intel_dp.c | 2 +-
> drivers/gpu/drm/i915/display/intel_dp_link_caps.c | 14 +++++++-------
> drivers/gpu/drm/i915/display/intel_dp_link_caps.h | 8 +++++---
> .../gpu/drm/i915/display/intel_dp_link_training.c | 5 +++--
> 4 files changed, 16 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index b63c6f047f83a..07266f4e6835b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -699,7 +699,7 @@ static bool intel_dp_set_common_link_params(struct
> intel_dp *intel_dp)
> bool params_changed = false;
>
> intel_dp_get_common_rates(intel_dp, common_rates,
> &num_common_rates);
> - if (intel_dp_link_caps_update(intel_dp,
> + if (intel_dp_link_caps_update(intel_dp->link.caps,
> common_rates, num_common_rates,
>
> intel_dp_get_max_common_lane_count(intel_dp)))
> params_changed = true;
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> index fc1061149ef2e..c5701f02fbf69 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> @@ -266,10 +266,10 @@ static int link_config_cmp_by_bw(const void *a,
> const void *b, const void *p) }
>
> /* Return %true if the supported link parameters have changed. */ -bool
> intel_dp_link_caps_update(struct intel_dp *intel_dp,
> +bool intel_dp_link_caps_update(struct intel_dp_link_caps *link_caps,
> const int *rates, int num_rates, int
> max_lane_count) {
> - struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
> + struct intel_dp *intel_dp = link_caps->dp;
> struct intel_display *display = to_intel_display(intel_dp);
> struct intel_dp_link_config_entry *lc;
> bool link_params_changed = false;
> @@ -322,10 +322,10 @@ bool intel_dp_link_caps_update(struct intel_dp
> *intel_dp,
> return link_params_changed;
> }
>
> -void intel_dp_link_config_get(struct intel_dp *intel_dp, int idx, int
> *link_rate,
> int *lane_count)
> +void intel_dp_link_config_get(struct intel_dp_link_caps *link_caps,
> + int idx, int *link_rate, int *lane_count)
> {
> - struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
> - struct intel_display *display = to_intel_display(intel_dp);
> + struct intel_display *display = to_intel_display(link_caps->dp);
> const struct intel_dp_link_config_entry *lc;
>
> if (drm_WARN_ON(display->drm, idx < 0 || idx >= link_caps-
> >num_configs)) @@ -337,9 +337,9 @@ void intel_dp_link_config_get(struct
> intel_dp *intel_dp, int idx, int *link_rate
> *lane_count = intel_dp_link_config_lane_count(lc);
> }
>
> -int intel_dp_link_config_index(struct intel_dp *intel_dp, int link_rate, int
> lane_count)
> +int intel_dp_link_config_index(struct intel_dp_link_caps *link_caps,
> + int link_rate, int lane_count)
> {
> - struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
> int link_rate_idx = intel_dp_rate_index(link_caps->rates, link_caps-
> >num_rates,
> link_rate);
> int lane_count_exp = ilog2(lane_count); diff --git
> a/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
> b/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
> index fa45a46723059..9256f02fed11e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
> @@ -24,8 +24,10 @@ void intel_dp_link_caps_print_common_rates(struct
> intel_dp_link_caps *link_caps) void
> intel_dp_link_caps_get_forced_params(struct intel_dp_link_caps *link_caps,
> struct intel_dp_link_config
> *forced_params);
>
> -int intel_dp_link_config_index(struct intel_dp *intel_dp, int link_rate, int
> lane_count); -void intel_dp_link_config_get(struct intel_dp *intel_dp, int
> idx,
> int *link_rate, int *lane_count);
> +int intel_dp_link_config_index(struct intel_dp_link_caps *link_caps,
> + int link_rate, int lane_count); void
> +intel_dp_link_config_get(struct intel_dp_link_caps *link_caps,
> + int idx, int *link_rate, int *lane_count);
>
> void intel_dp_link_caps_get_max_limits(struct intel_dp_link_caps *link_caps,
> struct intel_dp_link_config
> *max_link_limits); @@ -33,7 +35,7 @@ bool
> intel_dp_link_caps_set_max_limits(struct intel_dp_link_caps *link_caps,
> const struct intel_dp_link_config
> *max_link_limits); void intel_dp_link_caps_reset_max_limits(struct
> intel_dp_link_caps *link_caps);
>
> -bool intel_dp_link_caps_update(struct intel_dp *intel_dp,
> +bool intel_dp_link_caps_update(struct intel_dp_link_caps *link_caps,
> const int *rates, int num_rates, int
> max_lane_count); void intel_dp_link_caps_reset(struct intel_dp_link_caps
> *link_caps);
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> index 9d9911ebad439..0d4a0bf1dac53 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> @@ -1858,9 +1858,10 @@ static bool
> reduce_link_params_in_bw_order(struct intel_dp *intel_dp,
>
> intel_dp_link_caps_get_forced_params(link_caps, &forced_params);
>
> - i = intel_dp_link_config_index(intel_dp, crtc_state->port_clock,
> crtc_state->lane_count);
> + i = intel_dp_link_config_index(intel_dp->link.caps,
> + crtc_state->port_clock, crtc_state-
> >lane_count);
> for (i--; i >= 0; i--) {
> - intel_dp_link_config_get(intel_dp, i, &link_rate, &lane_count);
> + intel_dp_link_config_get(intel_dp->link.caps, i, &link_rate,
> +&lane_count);
>
LGTM,
Reviewed-by: Nemesa Garg <[email protected]>
> if ((forced_params.rate &&
> forced_params.rate != link_rate) ||
> --
> 2.49.1