Commit 9a10f401 authored by Keith Packard's avatar Keith Packard

drm/i915: Use DPCD value for max DP lanes.

The BIOS VBT value for an eDP panel has been shown to be incorrect on
one machine, and we haven't found any machines where the DPCD value
was wrong, so we'll use the DPCD value everywhere.
Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
Reviewed-by: default avatarAdam Jackson <ajax@redhat.com>
Reviewed-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent b34f1f09
...@@ -154,16 +154,12 @@ intel_edp_link_config(struct intel_encoder *intel_encoder, ...@@ -154,16 +154,12 @@ intel_edp_link_config(struct intel_encoder *intel_encoder,
static int static int
intel_dp_max_lane_count(struct intel_dp *intel_dp) intel_dp_max_lane_count(struct intel_dp *intel_dp)
{ {
int max_lane_count = 4; int max_lane_count = intel_dp->dpcd[DP_MAX_LANE_COUNT] & 0x1f;
switch (max_lane_count) {
if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11) { case 1: case 2: case 4:
max_lane_count = intel_dp->dpcd[DP_MAX_LANE_COUNT] & 0x1f; break;
switch (max_lane_count) { default:
case 1: case 2: case 4: max_lane_count = 4;
break;
default:
max_lane_count = 4;
}
} }
return max_lane_count; return max_lane_count;
} }
...@@ -765,12 +761,11 @@ intel_dp_set_m_n(struct drm_crtc *crtc, struct drm_display_mode *mode, ...@@ -765,12 +761,11 @@ intel_dp_set_m_n(struct drm_crtc *crtc, struct drm_display_mode *mode,
continue; continue;
intel_dp = enc_to_intel_dp(encoder); intel_dp = enc_to_intel_dp(encoder);
if (intel_dp->base.type == INTEL_OUTPUT_DISPLAYPORT || is_pch_edp(intel_dp)) { if (intel_dp->base.type == INTEL_OUTPUT_DISPLAYPORT ||
intel_dp->base.type == INTEL_OUTPUT_EDP)
{
lane_count = intel_dp->lane_count; lane_count = intel_dp->lane_count;
break; break;
} else if (is_cpu_edp(intel_dp)) {
lane_count = dev_priv->edp.lanes;
break;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment