aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2012-05-14 16:05:49 -0400
committerDave Airlie <airlied@redhat.com>2012-05-22 05:29:02 -0400
commit6225ee05ea44638b51ded0056505923cb6e2656d (patch)
tree11e020098d3fa1884982b10d4dc8c4acaff3ec5c /drivers/gpu/drm/nouveau
parent40c5d876478abb5aa8e5fb1741205dd35fcffe42 (diff)
drm/nouveau/dp: Probe branch/sink OUIs (v2)
(airlied: v2: fix missing struct - fixes compile) Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_dp.c21
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
513static void
514nouveau_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
513bool 532bool
514nouveau_dp_detect(struct drm_encoder *encoder) 533nouveau_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