diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_dp.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_dp.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c index d996134b1b28..7e289d2ad8e4 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dp.c +++ b/drivers/gpu/drm/nouveau/nouveau_dp.c | |||
@@ -510,6 +510,25 @@ nouveau_dp_dpms(struct drm_encoder *encoder, int mode, u32 datarate, | |||
510 | nouveau_dp_link_train(encoder, datarate, func); | 510 | nouveau_dp_link_train(encoder, datarate, func); |
511 | } | 511 | } |
512 | 512 | ||
513 | static void | ||
514 | nouveau_dp_probe_oui(struct drm_device *dev, struct nouveau_i2c_chan *auxch, | ||
515 | u8 *dpcd) | ||
516 | { | ||
517 | u8 buf[3]; | ||
518 | |||
519 | if (!(dpcd[DP_DOWN_STREAM_PORT_COUNT] & DP_OUI_SUPPORT)) | ||
520 | return; | ||
521 | |||
522 | if (!auxch_tx(dev, auxch->drive, 9, DP_SINK_OUI, buf, 3)) | ||
523 | NV_DEBUG_KMS(dev, "Sink OUI: %02hx%02hx%02hx\n", | ||
524 | buf[0], buf[1], buf[2]); | ||
525 | |||
526 | if (!auxch_tx(dev, auxch->drive, 9, DP_BRANCH_OUI, buf, 3)) | ||
527 | NV_DEBUG_KMS(dev, "Branch OUI: %02hx%02hx%02hx\n", | ||
528 | buf[0], buf[1], buf[2]); | ||
529 | |||
530 | } | ||
531 | |||
513 | bool | 532 | bool |
514 | nouveau_dp_detect(struct drm_encoder *encoder) | 533 | nouveau_dp_detect(struct drm_encoder *encoder) |
515 | { | 534 | { |
@@ -544,6 +563,8 @@ nouveau_dp_detect(struct drm_encoder *encoder) | |||
544 | NV_DEBUG_KMS(dev, "maximum: %dx%d\n", | 563 | NV_DEBUG_KMS(dev, "maximum: %dx%d\n", |
545 | nv_encoder->dp.link_nr, nv_encoder->dp.link_bw); | 564 | nv_encoder->dp.link_nr, nv_encoder->dp.link_bw); |
546 | 565 | ||
566 | nouveau_dp_probe_oui(dev, auxch, dpcd); | ||
567 | |||
547 | return true; | 568 | return true; |
548 | } | 569 | } |
549 | 570 | ||