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