aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-02-12 10:16:31 +1000
committerBen Skeggs <bskeggs@redhat.com>2013-02-20 16:00:57 +1000
commitf3ed1048715f2edc10c4dda6148b60e93f6282ed (patch)
tree6e0979de3783692fd0cc1439a034a4b305ab3bfc /drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
parentdrm/nouveau: store i2c port pointer directly in nouveau_encoder (diff)
downloadlinux-dev-f3ed1048715f2edc10c4dda6148b60e93f6282ed.tar.xz
linux-dev-f3ed1048715f2edc10c4dda6148b60e93f6282ed.zip
drm/nouveau/bios: parse external transmitter type if off-chip
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to '')
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c b/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
index 0fd87df99dd6..73a29da0415f 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
@@ -135,6 +135,9 @@ dcb_outp_parse(struct nouveau_bios *bios, u8 idx, u8 *ver, u8 *len,
case DCB_OUTPUT_DP:
outp->link = (conf & 0x00000030) >> 4;
outp->sorconf.link = outp->link; /*XXX*/
+ outp->extdev = 0x00;
+ if (outp->location != 0)
+ outp->extdev = (conf & 0x0000ff00) >> 8;
break;
default:
break;
@@ -147,7 +150,7 @@ dcb_outp_parse(struct nouveau_bios *bios, u8 idx, u8 *ver, u8 *len,
static inline u16
dcb_outp_hasht(struct dcb_output *outp)
{
- return outp->type;
+ return (outp->location << 4) | outp->type;
}
static inline u16