> -----Original Message----- > From: Intel-gfx <[email protected]> On Behalf Of Imre > Deak > Sent: Tuesday, 16 June 2026 23.09 > To: [email protected]; [email protected] > Subject: [PATCH v2 24/28] drm/i915/dp_link_caps: Add helper to reset > link_caps state > > Add a helper to reset the link_caps state, removing all restrictions > except user-forced parameters, re-allowing all supported > configurations. Currently this only resets the maximum link limits, > but follow-up changes will also re-enable configurations previously > disabled on a per-configuration basis by fallback or other logic. >
Reviewed-by: Mika Kahola <[email protected]> > Signed-off-by: Imre Deak <[email protected]> > --- > drivers/gpu/drm/i915/display/intel_dp.c | 3 +-- > .../gpu/drm/i915/display/intel_dp_link_caps.c | 18 ++++++++++++++++++ > .../gpu/drm/i915/display/intel_dp_link_caps.h | 1 + > 3 files changed, 20 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > b/drivers/gpu/drm/i915/display/intel_dp.c > index 3b3c31122452d..b63c6f047f83a 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -3610,8 +3610,7 @@ void intel_dp_set_link_params(struct intel_dp *intel_dp, > > void intel_dp_reset_link_params(struct intel_dp *intel_dp) > { > - intel_dp->link.max_lane_count = > intel_dp_link_caps_max_common_lane_count(intel_dp->link.caps); > - intel_dp->link.max_rate = intel_dp_max_common_rate(intel_dp); > + intel_dp_link_caps_reset(intel_dp->link.caps); > intel_dp->link.mst_probed_lane_count = 0; > intel_dp->link.mst_probed_rate = 0; > intel_dp_link_training_reset(intel_dp->link.training); > 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 ae10200bdd934..9b7da5a64ee25 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c > @@ -351,6 +351,24 @@ int intel_dp_link_config_index(struct intel_dp > *intel_dp, int link_rate, int lan > return -1; > } > > +/** > + * intel_dp_link_caps_reset - reset link capability restrictions > + * @link_caps: link capabilities state > + * > + * Reset all current restrictions except for the user requested forced > + * parameters, thus updating the set of allowed configurations and the > + * derived maximum link information accordingly. > + * > + * This function is regularly called after a sink is connected, either > + * for the first time to the connector or after a previous sink was > + * disconnected from it, and intel_dp_link_caps_update() was called. > + */ > +void intel_dp_link_caps_reset(struct intel_dp_link_caps *link_caps) > +{ > + /* TODO: Update the maximum link information. */ > + reset_max_link_limits_no_update(link_caps); > +} > + > static int i915_dp_force_link_rate_show(struct seq_file *m, void *data) > { > struct intel_connector *connector = to_intel_connector(m->private); > 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 7baeb4359d2d4..fa45a46723059 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.h > +++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.h > @@ -35,6 +35,7 @@ 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, > const int *rates, int num_rates, int > max_lane_count); > +void intel_dp_link_caps_reset(struct intel_dp_link_caps *link_caps); > > void intel_dp_link_caps_debugfs_add(struct intel_connector *connector); > > -- > 2.49.1
