diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2013-02-12 10:16:31 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-02-20 15:55:27 +1000 |
commit | b8496a548825be0acfa7e6d6808ee47617641add (patch) | |
tree | c63f0ff1f7aec5d86889a128734ad9b127a14fe8 /nvkm | |
parent | d6a8c4d6940faec303729b214f3b0c9e120dc6b5 (diff) | |
download | nouveau-b8496a548825be0acfa7e6d6808ee47617641add.tar.gz |
bios/dcb: parse external transmitter type if off-chip
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'nvkm')
-rw-r--r-- | nvkm/include/subdev/bios/dcb.h | 1 | ||||
-rw-r--r-- | nvkm/subdev/bios/dcb.c | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/nvkm/include/subdev/bios/dcb.h b/nvkm/include/subdev/bios/dcb.h index b79025da5..9e54678a1 100644 --- a/nvkm/include/subdev/bios/dcb.h +++ b/nvkm/include/subdev/bios/dcb.h @@ -25,6 +25,7 @@ struct dcb_output { uint8_t or; uint8_t link; bool duallink_possible; + uint8_t extdev; union { struct sor_conf { int link; diff --git a/nvkm/subdev/bios/dcb.c b/nvkm/subdev/bios/dcb.c index 0fd87df99..73a29da04 100644 --- a/nvkm/subdev/bios/dcb.c +++ b/nvkm/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 |