> -----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

Reply via email to