diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-08-05 01:56:53 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-09-20 02:11:09 -0400 |
commit | 5b3eb95fd83861a8520a50aee517209b8c8b0505 (patch) | |
tree | 55004cd974363d78ecf8b2f36cc41ab9c6c24ae3 /drivers/gpu | |
parent | 2834f86864a10a1cbad1e0543f68b4edb2e03bc7 (diff) |
drm/nouveau/dp: preserve non-pattern bits in DP_TRAINING_PATTERN_SET
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_dp.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c index 7eb841c8ddd9..d3552e766647 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dp.c +++ b/drivers/gpu/drm/nouveau/nouveau_dp.c | |||
@@ -337,9 +337,16 @@ dp_set_link_config(struct drm_device *dev, struct dp_state *dp) | |||
337 | static void | 337 | static void |
338 | dp_set_training_pattern(struct drm_device *dev, struct dp_state *dp, u8 tp) | 338 | dp_set_training_pattern(struct drm_device *dev, struct dp_state *dp, u8 tp) |
339 | { | 339 | { |
340 | u8 sink_tp; | ||
341 | |||
340 | NV_DEBUG_KMS(dev, "training pattern %d\n", tp); | 342 | NV_DEBUG_KMS(dev, "training pattern %d\n", tp); |
343 | |||
341 | nv_mask(dev, NV50_SOR_DP_CTRL(dp->or, dp->link), 0x0f000000, tp << 24); | 344 | nv_mask(dev, NV50_SOR_DP_CTRL(dp->or, dp->link), 0x0f000000, tp << 24); |
342 | auxch_tx(dev, dp->auxch, 8, DP_TRAINING_PATTERN_SET, &tp, 1); | 345 | |
346 | auxch_tx(dev, dp->auxch, 9, DP_TRAINING_PATTERN_SET, &sink_tp, 1); | ||
347 | sink_tp &= ~DP_TRAINING_PATTERN_MASK; | ||
348 | sink_tp |= tp; | ||
349 | auxch_tx(dev, dp->auxch, 8, DP_TRAINING_PATTERN_SET, &sink_tp, 1); | ||
343 | } | 350 | } |
344 | 351 | ||
345 | static const u8 nv50_lane_map[] = { 16, 8, 0, 24 }; | 352 | static const u8 nv50_lane_map[] = { 16, 8, 0, 24 }; |