diff options
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/dport.c | 9 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/dport.h | 1 |
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c b/drivers/gpu/drm/nouveau/core/engine/disp/dport.c index 46563da2854e..13903533d7a2 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c +++ b/drivers/gpu/drm/nouveau/core/engine/disp/dport.c | |||
| @@ -202,7 +202,10 @@ dp_link_train_eq(struct dp_state *dp) | |||
| 202 | bool eq_done = false, cr_done = true; | 202 | bool eq_done = false, cr_done = true; |
| 203 | int tries = 0, i; | 203 | int tries = 0, i; |
| 204 | 204 | ||
| 205 | dp_set_training_pattern(dp, 2); | 205 | if (dp->dpcd[2] & DPCD_RC02_TPS3_SUPPORTED) |
| 206 | dp_set_training_pattern(dp, 3); | ||
| 207 | else | ||
| 208 | dp_set_training_pattern(dp, 2); | ||
| 206 | 209 | ||
| 207 | do { | 210 | do { |
| 208 | if (dp_link_train_update(dp, 400)) | 211 | if (dp_link_train_update(dp, 400)) |
| @@ -316,8 +319,10 @@ nouveau_dp_train(struct nouveau_disp *disp, const struct nouveau_dp_func *func, | |||
| 316 | } | 319 | } |
| 317 | 320 | ||
| 318 | /* bring capabilities within encoder limits */ | 321 | /* bring capabilities within encoder limits */ |
| 322 | if (nv_oclass(disp)->handle < NV_ENGINE(DISP, 0x90)) | ||
| 323 | dp->dpcd[2] &= ~DPCD_RC02_TPS3_SUPPORTED; | ||
| 319 | if ((dp->dpcd[2] & 0x1f) > dp->outp->dpconf.link_nr) { | 324 | if ((dp->dpcd[2] & 0x1f) > dp->outp->dpconf.link_nr) { |
| 320 | dp->dpcd[2] &= ~0x1f; | 325 | dp->dpcd[2] &= ~DPCD_RC02_MAX_LANE_COUNT; |
| 321 | dp->dpcd[2] |= dp->outp->dpconf.link_nr; | 326 | dp->dpcd[2] |= dp->outp->dpconf.link_nr; |
| 322 | } | 327 | } |
| 323 | if (dp->dpcd[1] > dp->outp->dpconf.link_bw) | 328 | if (dp->dpcd[1] > dp->outp->dpconf.link_bw) |
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dport.h b/drivers/gpu/drm/nouveau/core/engine/disp/dport.h index 4d375b759baf..43281c8e9e7b 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/dport.h +++ b/drivers/gpu/drm/nouveau/core/engine/disp/dport.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #define DPCD_RC01_MAX_LINK_RATE 0x00001 | 6 | #define DPCD_RC01_MAX_LINK_RATE 0x00001 |
| 7 | #define DPCD_RC02 0x00002 | 7 | #define DPCD_RC02 0x00002 |
| 8 | #define DPCD_RC02_ENHANCED_FRAME_CAP 0x80 | 8 | #define DPCD_RC02_ENHANCED_FRAME_CAP 0x80 |
| 9 | #define DPCD_RC02_TPS3_SUPPORTED 0x40 | ||
| 9 | #define DPCD_RC02_MAX_LANE_COUNT 0x1f | 10 | #define DPCD_RC02_MAX_LANE_COUNT 0x1f |
| 10 | #define DPCD_RC03 0x00003 | 11 | #define DPCD_RC03 0x00003 |
| 11 | #define DPCD_RC03_MAX_DOWNSPREAD 0x01 | 12 | #define DPCD_RC03_MAX_DOWNSPREAD 0x01 |
