> -----Original Message-----
> From: Intel-gfx <[email protected]> On Behalf Of Imre
> Deak
> Sent: Wednesday, June 17, 2026 1:39 AM
> To: [email protected]; [email protected]
> Subject: [PATCH v2 26/28] drm/i915/dp_link_caps: Pass link_caps to static
> functions
>
> Pass the link_caps pointer to static functions in intel_dp_link_caps.c, as it
> holds the state with the relevant information.
>
> Signed-off-by: Imre Deak <[email protected]>
> ---
> .../gpu/drm/i915/display/intel_dp_link_caps.c | 37 ++++++++++---------
> 1 file changed, 19 insertions(+), 18 deletions(-)
>
> 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 43427e7cf422a..fc1061149ef2e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> @@ -118,10 +118,8 @@ int
> intel_dp_link_caps_max_common_lane_count(struct intel_dp_link_caps
> *link_cap
> return link_caps->max_lane_count;
> }
>
> -static int forced_lane_count(struct intel_dp *intel_dp)
> +static int forced_lane_count(struct intel_dp_link_caps *link_caps)
> {
> - struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
> -
> if (!link_caps->forced_params.lane_count)
> return 0;
>
> @@ -129,9 +127,9 @@ static int forced_lane_count(struct intel_dp *intel_dp)
> 1,
> intel_dp_link_caps_max_common_lane_count(link_caps));
> }
>
> -static int forced_link_rate(struct intel_dp *intel_dp)
> +static int forced_link_rate(struct intel_dp_link_caps *link_caps)
> {
> - struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
> + struct intel_dp *intel_dp = link_caps->dp;
> int len;
>
> if (!link_caps->forced_params.rate)
> @@ -147,14 +145,14 @@ static int forced_link_rate(struct intel_dp *intel_dp)
> void intel_dp_link_caps_get_forced_params(struct intel_dp_link_caps
> *link_caps,
> struct intel_dp_link_config
> *forced_params) {
> - forced_params->rate = forced_link_rate(link_caps->dp);
> - forced_params->lane_count = forced_lane_count(link_caps->dp);
> + forced_params->rate = forced_link_rate(link_caps);
> + forced_params->lane_count = forced_lane_count(link_caps);
> }
>
> -static int intel_dp_link_config_rate(struct intel_dp *intel_dp,
> +static int intel_dp_link_config_rate(struct intel_dp_link_caps
> +*link_caps,
> const struct intel_dp_link_config_entry
> *lc)
> {
> - return intel_dp_common_rate(intel_dp, lc->link_rate_idx);
> + return intel_dp_common_rate(link_caps->dp, lc->link_rate_idx);
> }
>
> static int intel_dp_link_config_lane_count(const struct
> intel_dp_link_config_entry *lc) @@ -243,26 +241,28 @@ void
> intel_dp_link_caps_reset_max_limits(struct intel_dp_link_caps *link_caps)
> reset_max_link_limits_no_update(link_caps);
> }
>
> -static int intel_dp_link_config_bw(struct intel_dp *intel_dp,
> +static int intel_dp_link_config_bw(struct intel_dp_link_caps
> +*link_caps,
> const struct intel_dp_link_config_entry *lc)
> {
> - return
> drm_dp_max_dprx_data_rate(intel_dp_link_config_rate(intel_dp, lc),
> + return
> drm_dp_max_dprx_data_rate(intel_dp_link_config_rate(link_caps,
> +lc),
> intel_dp_link_config_lane_count(lc));
> }
>
> static int link_config_cmp_by_bw(const void *a, const void *b, const void *p)
> {
> struct intel_dp *intel_dp = (struct intel_dp *)p; /* remove const
> */
> + struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
> +
> const struct intel_dp_link_config_entry *lc_a = a;
> const struct intel_dp_link_config_entry *lc_b = b;
> - int bw_a = intel_dp_link_config_bw(intel_dp, lc_a);
> - int bw_b = intel_dp_link_config_bw(intel_dp, lc_b);
> + int bw_a = intel_dp_link_config_bw(link_caps, lc_a);
> + int bw_b = intel_dp_link_config_bw(link_caps, lc_b);
>
> if (bw_a != bw_b)
> return bw_a - bw_b;
>
> - return intel_dp_link_config_rate(intel_dp, lc_a) -
> - intel_dp_link_config_rate(intel_dp, lc_b);
> + return intel_dp_link_config_rate(link_caps, lc_a) -
> + intel_dp_link_config_rate(link_caps, lc_b);
> }
>
> /* Return %true if the supported link parameters have changed. */ @@ -
> 333,7 +333,7 @@ void intel_dp_link_config_get(struct intel_dp *intel_dp, int
> idx, int *link_rate
>
> lc = &link_caps->configs[idx];
>
> - *link_rate = intel_dp_link_config_rate(intel_dp, lc);
> + *link_rate = intel_dp_link_config_rate(link_caps, lc);
> *lane_count = intel_dp_link_config_lane_count(lc);
> }
>
> @@ -414,8 +414,9 @@ static int i915_dp_force_link_rate_show(struct
> seq_file *m, void *data)
> return 0;
> }
>
> -static int parse_link_rate(struct intel_dp *intel_dp, const char __user
> *ubuf,
> size_t len)
> +static int parse_link_rate(struct intel_dp_link_caps *link_caps, const
> +char __user *ubuf, size_t len)
> {
> + struct intel_dp *intel_dp = link_caps->dp;
> char *kbuf;
> const char *p;
> int rate;
> @@ -458,7 +459,7 @@ static ssize_t i915_dp_force_link_rate_write(struct file
> *file,
> int rate;
> int err;
>
> - rate = parse_link_rate(intel_dp, ubuf, len);
> + rate = parse_link_rate(link_caps, ubuf, len);
> if (rate < 0)
> return rate;
>
LGTM,
Reviewed-by: Nemesa Garg <[email protected]>
> --
> 2.49.1