diff options
| author | Ben Skeggs <bskeggs@redhat.com> | 2014-06-16 01:45:01 -0400 |
|---|---|---|
| committer | Ben Skeggs <bskeggs@redhat.com> | 2014-06-17 00:41:41 -0400 |
| commit | cf7c5d67e192e0bdc9e4372392006c224618ca0c (patch) | |
| tree | 3ffc77a01a9ea0d6e733636bd7a857a77654316f | |
| parent | ba124a41058b300a5464206d2d33803cc3dc82ec (diff) | |
drm/nouveau/disp/dp: don't touch link config after success
I don't know of anything this fixes, but it seems wrong anyway.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/dport.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c b/drivers/gpu/drm/nouveau/core/engine/disp/dport.c index 39562d48101d..5a5b59b21130 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c +++ b/drivers/gpu/drm/nouveau/core/engine/disp/dport.c | |||
| @@ -241,7 +241,9 @@ dp_link_train_eq(struct dp_state *dp) | |||
| 241 | dp_set_training_pattern(dp, 2); | 241 | dp_set_training_pattern(dp, 2); |
| 242 | 242 | ||
| 243 | do { | 243 | do { |
| 244 | if (dp_link_train_update(dp, dp->pc2, 400)) | 244 | if ((tries && |
| 245 | dp_link_train_commit(dp, dp->pc2)) || | ||
| 246 | dp_link_train_update(dp, dp->pc2, 400)) | ||
| 245 | break; | 247 | break; |
| 246 | 248 | ||
| 247 | eq_done = !!(dp->stat[2] & DPCD_LS04_INTERLANE_ALIGN_DONE); | 249 | eq_done = !!(dp->stat[2] & DPCD_LS04_INTERLANE_ALIGN_DONE); |
| @@ -253,9 +255,6 @@ dp_link_train_eq(struct dp_state *dp) | |||
| 253 | !(lane & DPCD_LS02_LANE0_SYMBOL_LOCKED)) | 255 | !(lane & DPCD_LS02_LANE0_SYMBOL_LOCKED)) |
| 254 | eq_done = false; | 256 | eq_done = false; |
| 255 | } | 257 | } |
| 256 | |||
| 257 | if (dp_link_train_commit(dp, dp->pc2)) | ||
| 258 | break; | ||
| 259 | } while (!eq_done && cr_done && ++tries <= 5); | 258 | } while (!eq_done && cr_done && ++tries <= 5); |
| 260 | 259 | ||
| 261 | return eq_done ? 0 : -1; | 260 | return eq_done ? 0 : -1; |
