aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-02-11 19:16:31 -0500
committerBen Skeggs <bskeggs@redhat.com>2013-02-20 01:00:57 -0500
commitf3ed1048715f2edc10c4dda6148b60e93f6282ed (patch)
tree6e0979de3783692fd0cc1439a034a4b305ab3bfc /drivers/gpu/drm
parent5ed502096f698b978c12a435f04be5afb195b485 (diff)
drm/nouveau/bios: parse external transmitter type if off-chip
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/dcb.h1
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/dcb.h b/drivers/gpu/drm/nouveau/core/include/subdev/bios/dcb.h
index b79025da581e..9e54678a1728 100644
--- a/drivers/gpu/drm/nouveau/core/include/subdev/bios/dcb.h
+++ b/drivers/gpu/drm/nouveau/core/include/subdev/bios/dcb.h
@@ -25,6 +25,7 @@ struct dcb_output {
25 uint8_t or; 25 uint8_t or;
26 uint8_t link; 26 uint8_t link;
27 bool duallink_possible; 27 bool duallink_possible;
28 uint8_t extdev;
28 union { 29 union {
29 struct sor_conf { 30 struct sor_conf {
30 int link; 31 int link;
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,
135 case DCB_OUTPUT_DP: 135 case DCB_OUTPUT_DP:
136 outp->link = (conf & 0x00000030) >> 4; 136 outp->link = (conf & 0x00000030) >> 4;
137 outp->sorconf.link = outp->link; /*XXX*/ 137 outp->sorconf.link = outp->link; /*XXX*/
138 outp->extdev = 0x00;
139 if (outp->location != 0)
140 outp->extdev = (conf & 0x0000ff00) >> 8;
138 break; 141 break;
139 default: 142 default:
140 break; 143 break;
@@ -147,7 +150,7 @@ dcb_outp_parse(struct nouveau_bios *bios, u8 idx, u8 *ver, u8 *len,
147static inline u16 150static inline u16
148dcb_outp_hasht(struct dcb_output *outp) 151dcb_outp_hasht(struct dcb_output *outp)
149{ 152{
150 return outp->type; 153 return (outp->location << 4) | outp->type;
151} 154}
152 155
153static inline u16 156static inline u16