|
@@ -2959,7 +2959,10 @@ intel_dp_set_link_train(struct intel_dp *intel_dp,
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
- *DP &= ~DP_LINK_TRAIN_MASK;
|
|
|
+ if (IS_CHERRYVIEW(dev))
|
|
|
+ *DP &= ~DP_LINK_TRAIN_MASK_CHV;
|
|
|
+ else
|
|
|
+ *DP &= ~DP_LINK_TRAIN_MASK;
|
|
|
|
|
|
switch (dp_train_pat & DP_TRAINING_PATTERN_MASK) {
|
|
|
case DP_TRAINING_PATTERN_DISABLE:
|
|
@@ -2972,8 +2975,12 @@ intel_dp_set_link_train(struct intel_dp *intel_dp,
|
|
|
*DP |= DP_LINK_TRAIN_PAT_2;
|
|
|
break;
|
|
|
case DP_TRAINING_PATTERN_3:
|
|
|
- DRM_ERROR("DP training pattern 3 not supported\n");
|
|
|
- *DP |= DP_LINK_TRAIN_PAT_2;
|
|
|
+ if (IS_CHERRYVIEW(dev)) {
|
|
|
+ *DP |= DP_LINK_TRAIN_PAT_3_CHV;
|
|
|
+ } else {
|
|
|
+ DRM_ERROR("DP training pattern 3 not supported\n");
|
|
|
+ *DP |= DP_LINK_TRAIN_PAT_2;
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -3260,7 +3267,10 @@ intel_dp_link_down(struct intel_dp *intel_dp)
|
|
|
DP &= ~DP_LINK_TRAIN_MASK_CPT;
|
|
|
I915_WRITE(intel_dp->output_reg, DP | DP_LINK_TRAIN_PAT_IDLE_CPT);
|
|
|
} else {
|
|
|
- DP &= ~DP_LINK_TRAIN_MASK;
|
|
|
+ if (IS_CHERRYVIEW(dev))
|
|
|
+ DP &= ~DP_LINK_TRAIN_MASK_CHV;
|
|
|
+ else
|
|
|
+ DP &= ~DP_LINK_TRAIN_MASK;
|
|
|
I915_WRITE(intel_dp->output_reg, DP | DP_LINK_TRAIN_PAT_IDLE);
|
|
|
}
|
|
|
POSTING_READ(intel_dp->output_reg);
|