summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2026-06-16 23:08:43 +0300
committerImre Deak <imre.deak@intel.com>2026-06-24 19:44:03 +0300
commit13b1b0b98b82ddaefd899a29318bc745acaf433c (patch)
tree23100f0cfb14184de86a78403ef17cdeb7ac541f
parent17659f83926c0bd8938df72392ff45a568a38b47 (diff)
downloadlinux-13b1b0b98b82ddaefd899a29318bc745acaf433c.tar.gz
linux-13b1b0b98b82ddaefd899a29318bc745acaf433c.zip
drm/i915/dp_link_caps: Add helper to reset max link limits
Add a helper to reset the link_caps::max_limits max link limits to the maximum common supported rate and lane count. This is needed by a follow-up change in the link training fallback code, which temporarily resets max_limits before searching for a fallback configuration. Reviewed-by: Mika Kahola <mika.kahola@intel.com> Signed-off-by: Imre Deak <imre.deak@intel.com> Link: https://patch.msgid.link/20260616200849.3534628-24-imre.deak@intel.com
-rw-r--r--drivers/gpu/drm/i915/display/intel_dp_link_caps.c22
-rw-r--r--drivers/gpu/drm/i915/display/intel_dp_link_caps.h1
2 files changed, 23 insertions, 0 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 e568f00720d3..ae10200bdd93 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
@@ -160,6 +160,16 @@ static void set_max_link_limits_no_update(struct intel_dp_link_caps *link_caps,
intel_dp->link.max_lane_count = max_link_limits->lane_count;
}
+static void reset_max_link_limits_no_update(struct intel_dp_link_caps *link_caps)
+{
+ struct intel_dp_link_config max_link_limits = {
+ .rate = intel_dp_max_common_rate(link_caps->dp),
+ .lane_count = intel_dp_link_caps_max_common_lane_count(link_caps),
+ };
+
+ set_max_link_limits_no_update(link_caps, &max_link_limits);
+}
+
/**
* intel_dp_link_caps_get_max_limits - get the current maximum link limits
* @link_caps: link capabilities state
@@ -216,6 +226,18 @@ bool intel_dp_link_caps_set_max_limits(struct intel_dp_link_caps *link_caps,
return true;
}
+/**
+ * intel_dp_link_caps_reset_max_limits - reset the current maximum link limits
+ * @link_caps: link capabilities state
+ *
+ * Reset the current maximum link limits to the maximum supported common link
+ * rate and lane count.
+ */
+void intel_dp_link_caps_reset_max_limits(struct intel_dp_link_caps *link_caps)
+{
+ reset_max_link_limits_no_update(link_caps);
+}
+
static int intel_dp_link_config_bw(struct intel_dp *intel_dp,
const struct intel_dp_link_config_entry *lc)
{
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 c6c60b788887..7baeb4359d2d 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
@@ -31,6 +31,7 @@ void intel_dp_link_caps_get_max_limits(struct intel_dp_link_caps *link_caps,
struct intel_dp_link_config *max_link_limits);
bool intel_dp_link_caps_set_max_limits(struct intel_dp_link_caps *link_caps,
const struct intel_dp_link_config *max_link_limits);
+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);