summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2026-07-01 18:31:31 +0300
committerImre Deak <imre.deak@intel.com>2026-07-09 10:22:55 +0300
commit87b7964494847d12903d03e48c93b73bebcf54ef (patch)
tree2a4891fe127e8ee1f002c807079115c33b79814a
parentee8f7484f99db9fb80ad15af412dbf03eeb9ff57 (diff)
drm/i915/dp_link_caps: Factor out helper to get link config by index
Factor out a helper that looks up a link configuration by index. This provides the link configuration directly, avoiding the indirect conversion via the packed config entry. Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> Signed-off-by: Imre Deak <imre.deak@intel.com> Link: https://patch.msgid.link/20260701153204.4124150-3-imre.deak@intel.com
-rw-r--r--drivers/gpu/drm/i915/display/intel_dp_link_caps.c18
1 files changed, 14 insertions, 4 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 2c656c2c036c..d0a863b00b45 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
@@ -235,6 +235,16 @@ static int intel_dp_link_config_lane_count(const struct intel_dp_link_config_ent
return 1 << lce->lane_count_exp;
}
+static void
+to_intel_dp_link_config(struct intel_dp_link_caps *link_caps,
+ int config_idx, struct intel_dp_link_config *config)
+{
+ const struct intel_dp_link_config_entry *lce = &link_caps->configs[config_idx];
+
+ config->rate = intel_dp_link_config_rate(link_caps, lce);
+ config->lane_count = intel_dp_link_config_lane_count(lce);
+}
+
static void set_max_link_limits_no_update(struct intel_dp_link_caps *link_caps,
const struct intel_dp_link_config *max_link_limits)
{
@@ -401,15 +411,15 @@ void intel_dp_link_config_get(struct intel_dp_link_caps *link_caps,
int idx, int *link_rate, int *lane_count)
{
struct intel_display *display = to_intel_display(link_caps->dp);
- const struct intel_dp_link_config_entry *lce;
+ struct intel_dp_link_config config;
if (drm_WARN_ON(display->drm, idx < 0 || idx >= link_caps->num_configs))
idx = 0;
- lce = &link_caps->configs[idx];
+ to_intel_dp_link_config(link_caps, idx, &config);
- *link_rate = intel_dp_link_config_rate(link_caps, lce);
- *lane_count = intel_dp_link_config_lane_count(lce);
+ *link_rate = config.rate;
+ *lane_count = config.lane_count;
}
int intel_dp_link_config_index(struct intel_dp_link_caps *link_caps,