diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-11-06 23:51:53 -0500 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-11-16 18:50:35 -0500 |
commit | 3ca03cac399340563941828e58316105e26cffc1 (patch) | |
tree | 26e4f7314f098a0287f14a2e9e6402a4fdbe56ca | |
parent | b27add13f500469127afdf011dbcc9c649e16e54 (diff) |
drm/nouveau/kms/nv50: avoid touching DP_MSTM_CTRL if !DP_MST_CAP
Fixes certain displays not being detected due to DPAUX errors.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_display.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index a9855a4ec532..88918055224a 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c | |||
@@ -3343,12 +3343,15 @@ nv50_mstm_detect(struct nv50_mstm *mstm, u8 dpcd[8], int allow) | |||
3343 | if (!mstm) | 3343 | if (!mstm) |
3344 | return 0; | 3344 | return 0; |
3345 | 3345 | ||
3346 | if (dpcd[0] >= 0x12 && allow) { | 3346 | if (dpcd[0] >= 0x12) { |
3347 | ret = drm_dp_dpcd_readb(mstm->mgr.aux, DP_MSTM_CAP, &dpcd[1]); | 3347 | ret = drm_dp_dpcd_readb(mstm->mgr.aux, DP_MSTM_CAP, &dpcd[1]); |
3348 | if (ret < 0) | 3348 | if (ret < 0) |
3349 | return ret; | 3349 | return ret; |
3350 | 3350 | ||
3351 | state = dpcd[1] & DP_MST_CAP; | 3351 | if (!(dpcd[1] & DP_MST_CAP)) |
3352 | dpcd[0] = 0x11; | ||
3353 | else | ||
3354 | state = allow; | ||
3352 | } | 3355 | } |
3353 | 3356 | ||
3354 | ret = nv50_mstm_enable(mstm, dpcd[0], state); | 3357 | ret = nv50_mstm_enable(mstm, dpcd[0], state); |