On Wed, 2026-07-01 at 18:31 +0300, Imre Deak wrote:
> Query the maximum link BW configuration via the link caps interface to
> compute the available TBT bandwidth. Unlike the max common link params
> used so far for this, the max BW config also accounts for any forced
> link parameters.
> 
> This makes the max BW link config query uniform across mode validation
> and TBT BW calculation, and allows unexporting the
> intel_dp_link_caps_max_common_lane_count() helper.
> 
> v2: Use the max BW link configuration, instead of the max link limits.
> 
> Signed-off-by: Imre Deak <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_dp_link_caps.c | 2 +-
>  drivers/gpu/drm/i915/display/intel_dp_link_caps.h | 1 -
>  drivers/gpu/drm/i915/display/intel_dp_tunnel.c    | 8 +++++---
>  3 files changed, 6 insertions(+), 5 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 c209c8a935234..8dfb7f4f703bc 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> @@ -290,7 +290,7 @@ void intel_dp_link_caps_print_common_rates(struct 
> intel_dp_link_caps *link_caps)
>       drm_dbg_kms(display->drm, "common rates: %s\n", seq_buf_str(&s));
>  }
>  
> -int intel_dp_link_caps_max_common_lane_count(struct intel_dp_link_caps 
> *link_caps)
> +static int intel_dp_link_caps_max_common_lane_count(struct 
> intel_dp_link_caps *link_caps)
>  {
>       return link_caps->max_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 667bd70b2396d..07002d745d384 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
> @@ -125,7 +125,6 @@ int intel_dp_common_rate(struct intel_dp_link_caps 
> *link_caps, int index);
>  int intel_dp_link_caps_common_rate_idx(struct intel_dp_link_caps *link_caps, 
> int rate);
>  int intel_dp_max_common_rate(struct intel_dp_link_caps *link_caps);
>  int intel_dp_link_caps_num_common_rates(struct intel_dp_link_caps 
> *link_caps);
> -int intel_dp_link_caps_max_common_lane_count(struct intel_dp_link_caps 
> *link_caps);
>  
>  void intel_dp_link_caps_print_common_rates(struct intel_dp_link_caps 
> *link_caps);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_tunnel.c 
> b/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
> index 76e9753766b9f..49fa4c9699b61 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
> @@ -58,10 +58,12 @@ static int kbytes_to_mbits(int kbytes)
>  static int get_current_link_bw(struct intel_dp *intel_dp)
>  {
>       struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
> -     int rate = intel_dp_max_common_rate(link_caps);
> -     int lane_count = intel_dp_link_caps_max_common_lane_count(link_caps);
> +     struct intel_dp_link_config max_bw_config;
>  
> -     return intel_dp_max_link_data_rate(intel_dp, rate, lane_count);
> +     intel_dp_link_caps_get_max_bw_config(link_caps, &max_bw_config);
> +
> +     return intel_dp_max_link_data_rate(intel_dp, max_bw_config.rate,
> +                                                  max_bw_config.lane_count);
>  }
>  
>  static int __update_tunnel_state(struct intel_dp *intel_dp, bool 
> force_sink_update)

Reviewed-by: Luca Coelho <[email protected]>

--
Cheers,
Luca.

Reply via email to