> -----Original Message-----
> From: Intel-xe <[email protected]> On Behalf Of Imre Deak
> Sent: Tuesday, 16 June 2026 23.08
> To: [email protected]; [email protected]
> Subject: [PATCH v2 04/28] drm/i915/dp_link_caps: Move common rate helpers to 
> link caps
> 
> Move the helpers handling common link rates to intel_dp_link_caps.c.
> Their functionality is part of the link capability logic and will be
> updated to use the link capability state in follow-up changes.
> 

Reviewed-by: Mika Kahola <[email protected]>

> Signed-off-by: Imre Deak <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c       | 27 +----------------
>  drivers/gpu/drm/i915/display/intel_dp.h       |  3 +-
>  .../gpu/drm/i915/display/intel_dp_link_caps.c | 30 +++++++++++++++++++
>  .../gpu/drm/i915/display/intel_dp_link_caps.h |  5 ++++
>  .../drm/i915/display/intel_dp_link_training.c |  1 +
>  .../gpu/drm/i915/display/intel_dp_tunnel.c    |  1 +
>  6 files changed, 39 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index fa095c4db7fe6..a34d3704a5667 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -314,7 +314,7 @@ static void intel_dp_set_max_sink_lane_count(struct 
> intel_dp *intel_dp)
>  }
> 
>  /* Get length of rates array potentially limited by max_rate. */
> -static int intel_dp_rate_limit_len(const int *rates, int len, int max_rate)
> +int intel_dp_rate_limit_len(const int *rates, int len, int max_rate)
>  {
>       int i;
> 
> @@ -327,31 +327,6 @@ static int intel_dp_rate_limit_len(const int *rates, int 
> len, int max_rate)
>       return 0;
>  }
> 
> -/* Get length of common rates array potentially limited by max_rate. */
> -static int intel_dp_common_len_rate_limit(const struct intel_dp *intel_dp,
> -                                       int max_rate)
> -{
> -     return intel_dp_rate_limit_len(intel_dp->common_rates,
> -                                    intel_dp->num_common_rates, max_rate);
> -}
> -
> -int intel_dp_common_rate(struct intel_dp *intel_dp, int index)
> -{
> -     struct intel_display *display = to_intel_display(intel_dp);
> -
> -     if (drm_WARN_ON(display->drm,
> -                     index < 0 || index >= intel_dp->num_common_rates))
> -             return 162000;
> -
> -     return intel_dp->common_rates[index];
> -}
> -
> -/* Theoretical max between source and sink */
> -int intel_dp_max_common_rate(struct intel_dp *intel_dp)
> -{
> -     return intel_dp_common_rate(intel_dp, intel_dp->num_common_rates - 1);
> -}
> -
>  int intel_dp_max_source_lane_count(struct intel_digital_port *dig_port)
>  {
>       int vbt_max_lanes = 
> intel_bios_dp_max_lane_count(dig_port->base.devdata);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.h 
> b/drivers/gpu/drm/i915/display/intel_dp.h
> index 92ce048523267..8cc6ea04e000c 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp.h
> @@ -100,14 +100,13 @@ void intel_edp_backlight_off(const struct 
> drm_connector_state *conn_state);
>  void intel_edp_fixup_vbt_bpp(struct intel_encoder *encoder, int pipe_bpp);
>  void intel_dp_mst_suspend(struct intel_display *display);
>  void intel_dp_mst_resume(struct intel_display *display);
> +int intel_dp_rate_limit_len(const int *rates, int len, int max_rate);
>  int intel_dp_max_source_lane_count(struct intel_digital_port *dig_port);
>  int intel_dp_max_link_rate(struct intel_dp *intel_dp);
>  int intel_dp_max_lane_count(struct intel_dp *intel_dp);
>  int intel_dp_config_required_rate(const struct intel_crtc_state *crtc_state);
>  int intel_dp_rate_select(struct intel_dp *intel_dp, int rate);
> -int intel_dp_max_common_rate(struct intel_dp *intel_dp);
>  int intel_dp_max_common_lane_count(struct intel_dp *intel_dp);
> -int intel_dp_common_rate(struct intel_dp *intel_dp, int index);
>  int intel_dp_rate_index(const int *rates, int len, int rate);
>  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);
> 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 63989d97effd7..37ffd714c6a42 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
> @@ -5,12 +5,42 @@
> 
>  #include <linux/slab.h>
> 
> +#include <drm/drm_print.h>
> +
> +#include "intel_display_core.h"
> +#include "intel_display_types.h"
> +#include "intel_dp.h"
>  #include "intel_dp_link_caps.h"
> 
>  struct intel_dp_link_caps {
>       struct intel_dp *dp;
>  };
> 
> +/* Get length of common rates array potentially limited by max_rate. */
> +int intel_dp_common_len_rate_limit(const struct intel_dp *intel_dp,
> +                                int max_rate)
> +{
> +     return intel_dp_rate_limit_len(intel_dp->common_rates,
> +                                    intel_dp->num_common_rates, max_rate);
> +}
> +
> +int intel_dp_common_rate(struct intel_dp *intel_dp, int index)
> +{
> +     struct intel_display *display = to_intel_display(intel_dp);
> +
> +     if (drm_WARN_ON(display->drm,
> +                     index < 0 || index >= intel_dp->num_common_rates))
> +             return 162000;
> +
> +     return intel_dp->common_rates[index];
> +}
> +
> +/* Theoretical max between source and sink */
> +int intel_dp_max_common_rate(struct intel_dp *intel_dp)
> +{
> +     return intel_dp_common_rate(intel_dp, intel_dp->num_common_rates - 1);
> +}
> +
>  struct intel_dp_link_caps *intel_dp_link_caps_init(struct intel_dp *intel_dp)
>  {
>       struct intel_dp_link_caps *link_caps;
> 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 050b279463d6e..3248777d1287f 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
> @@ -6,6 +6,11 @@
> 
>  struct intel_dp;
> 
> +int intel_dp_common_len_rate_limit(const struct intel_dp *intel_dp,
> +                                int max_rate);
> +int intel_dp_common_rate(struct intel_dp *intel_dp, int index);
> +int intel_dp_max_common_rate(struct intel_dp *intel_dp);
> +
>  struct intel_dp_link_caps *intel_dp_link_caps_init(struct intel_dp 
> *intel_dp);
>  void intel_dp_link_caps_cleanup(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 97cb407d084cd..b915cfdeabd0e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> @@ -33,6 +33,7 @@
>  #include "intel_display_types.h"
>  #include "intel_display_utils.h"
>  #include "intel_dp.h"
> +#include "intel_dp_link_caps.h"
>  #include "intel_dp_link_training.h"
>  #include "intel_dp_mst.h"
>  #include "intel_encoder.h"
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_tunnel.c 
> b/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
> index d6bd1f7e01e18..c82adfcce01d0 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
> @@ -11,6 +11,7 @@
>  #include "intel_display_limits.h"
>  #include "intel_display_types.h"
>  #include "intel_dp.h"
> +#include "intel_dp_link_caps.h"
>  #include "intel_dp_link_training.h"
>  #include "intel_dp_mst.h"
>  #include "intel_dp_tunnel.h"
> --
> 2.49.1

Reply via email to