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

Reply via email to