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

Commit 5b3eb95f authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/dp: preserve non-pattern bits in DP_TRAINING_PATTERN_SET



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2834f868
Loading
Loading
Loading
Loading
+8 −1
Original line number Original line Diff line number Diff line
@@ -337,9 +337,16 @@ dp_set_link_config(struct drm_device *dev, struct dp_state *dp)
static void
static void
dp_set_training_pattern(struct drm_device *dev, struct dp_state *dp, u8 tp)
dp_set_training_pattern(struct drm_device *dev, struct dp_state *dp, u8 tp)
{
{
	u8 sink_tp;

	NV_DEBUG_KMS(dev, "training pattern %d\n", tp);
	NV_DEBUG_KMS(dev, "training pattern %d\n", tp);

	nv_mask(dev, NV50_SOR_DP_CTRL(dp->or, dp->link), 0x0f000000, tp << 24);
	nv_mask(dev, NV50_SOR_DP_CTRL(dp->or, dp->link), 0x0f000000, tp << 24);
	auxch_tx(dev, dp->auxch, 8, DP_TRAINING_PATTERN_SET, &tp, 1);

	auxch_tx(dev, dp->auxch, 9, DP_TRAINING_PATTERN_SET, &sink_tp, 1);
	sink_tp &= ~DP_TRAINING_PATTERN_MASK;
	sink_tp |= tp;
	auxch_tx(dev, dp->auxch, 8, DP_TRAINING_PATTERN_SET, &sink_tp, 1);
}
}


static const u8 nv50_lane_map[] = { 16, 8, 0, 24 };
static const u8 nv50_lane_map[] = { 16, 8, 0, 24 };