diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2013-02-11 19:16:31 -0500 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-02-20 01:00:57 -0500 |
commit | f3ed1048715f2edc10c4dda6148b60e93f6282ed (patch) | |
tree | 6e0979de3783692fd0cc1439a034a4b305ab3bfc /drivers/gpu/drm | |
parent | 5ed502096f698b978c12a435f04be5afb195b485 (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.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c | 5 |
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, | |||
147 | static inline u16 | 150 | static inline u16 |
148 | dcb_outp_hasht(struct dcb_output *outp) | 151 | dcb_outp_hasht(struct dcb_output *outp) |
149 | { | 152 | { |
150 | return outp->type; | 153 | return (outp->location << 4) | outp->type; |
151 | } | 154 | } |
152 | 155 | ||
153 | static inline u16 | 156 | static inline u16 |