drm/i915: Try harder to complete DP training pattern 1
In commit cdb0e95bf5
Author: Keith Packard <keithp@keithp.com>
Date: Tue Nov 1 20:00:06 2011 -0700
drm/i915: Try harder during dp pattern 1 link training
extra passes were made to retry the same voltage and then retry a full
clock reset. However, as coverity pointed out, we never tried the full
clock reset as we broke out of the loop early.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
7f6613412c
commit
2477367083
1 changed files with 5 additions and 10 deletions
|
@ -1798,8 +1798,7 @@ intel_dp_start_link_train(struct intel_dp *intel_dp)
|
||||||
if ((intel_dp->train_set[i] & DP_TRAIN_MAX_SWING_REACHED) == 0)
|
if ((intel_dp->train_set[i] & DP_TRAIN_MAX_SWING_REACHED) == 0)
|
||||||
break;
|
break;
|
||||||
if (i == intel_dp->lane_count && voltage_tries == 5) {
|
if (i == intel_dp->lane_count && voltage_tries == 5) {
|
||||||
++loop_tries;
|
if (++loop_tries == 5) {
|
||||||
if (loop_tries == 5) {
|
|
||||||
DRM_DEBUG_KMS("too many full retries, give up\n");
|
DRM_DEBUG_KMS("too many full retries, give up\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1809,15 +1808,11 @@ intel_dp_start_link_train(struct intel_dp *intel_dp)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check to see if we've tried the same voltage 5 times */
|
/* Check to see if we've tried the same voltage 5 times */
|
||||||
if ((intel_dp->train_set[0] & DP_TRAIN_VOLTAGE_SWING_MASK) == voltage) {
|
if ((intel_dp->train_set[0] & DP_TRAIN_VOLTAGE_SWING_MASK) != voltage) {
|
||||||
++voltage_tries;
|
voltage = intel_dp->train_set[0] & DP_TRAIN_VOLTAGE_SWING_MASK;
|
||||||
if (voltage_tries == 5) {
|
|
||||||
DRM_DEBUG_KMS("too many voltage retries, give up\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
voltage_tries = 0;
|
voltage_tries = 0;
|
||||||
voltage = intel_dp->train_set[0] & DP_TRAIN_VOLTAGE_SWING_MASK;
|
} else
|
||||||
|
++voltage_tries;
|
||||||
|
|
||||||
/* Compute new intel_dp->train_set as requested by target */
|
/* Compute new intel_dp->train_set as requested by target */
|
||||||
intel_get_adjust_train(intel_dp, link_status);
|
intel_get_adjust_train(intel_dp, link_status);
|
||||||
|
|
Loading…
Reference in a new issue