Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe224bb7 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau: enable enhanced framing only if DP display supports it



Reported-by: default avatarAdam Jackson <ajax@redhat.com>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 7760fcb0
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -317,7 +317,8 @@ nouveau_dp_link_train(struct drm_encoder *encoder)
		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;
}

+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ struct nouveau_encoder {
			int dpcd_version;
			int link_nr;
			int link_bw;
			bool enhanced_frame;
		} dp;
	};
};