|
@@ -317,7 +317,8 @@ train:
|
|
|
return false;
|
|
|
|
|
|
config[0] = nv_encoder->dp.link_nr;
|
|
|
- if (nv_encoder->dp.dpcd_version >= 0x11)
|
|
|
+ if (nv_encoder->dp.dpcd_version >= 0x11 &&
|
|
|
+ nv_encoder->dp.enhanced_frame)
|
|
|
config[0] |= DP_LANE_COUNT_ENHANCED_FRAME_EN;
|
|
|
|
|
|
ret = nouveau_dp_lane_count_set(encoder, config[0]);
|
|
@@ -468,10 +469,12 @@ nouveau_dp_detect(struct drm_encoder *encoder)
|
|
|
!nv_encoder->dcb->dpconf.link_bw)
|
|
|
nv_encoder->dp.link_bw = DP_LINK_BW_1_62;
|
|
|
|
|
|
- nv_encoder->dp.link_nr = dpcd[2] & 0xf;
|
|
|
+ nv_encoder->dp.link_nr = dpcd[2] & DP_MAX_LANE_COUNT;
|
|
|
if (nv_encoder->dp.link_nr > nv_encoder->dcb->dpconf.link_nr)
|
|
|
nv_encoder->dp.link_nr = nv_encoder->dcb->dpconf.link_nr;
|
|
|
|
|
|
+ nv_encoder->dp.enhanced_frame = (dpcd[2] & DP_ENHANCED_FRAME_CAP);
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|