diff options
author | Francisco Jerez <currojerez@riseup.net> | 2010-08-24 17:02:02 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2010-08-26 01:11:31 -0400 |
commit | fba675283429e41270feb661a1f6f3bc05d71981 (patch) | |
tree | 5c0ddd96ed967c1297c0181ecd383a3b3eb70687 /drivers | |
parent | d31e078d847fb2816d26c9476f4a68e89dc65a0b (diff) |
drm/nouveau: Fix TMDS on some DCB1.5 boards.
The TMDS output of an nv11 was being detected as LVDS, because it uses
DCB type 2 for TMDS instead of type 4.
Reported-by: Bertrand VIEILLE <Vieille.Bertrand@free.fr>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bios.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c index f6c615b228d4..974b0f8ae048 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c | |||
@@ -6166,22 +6166,14 @@ parse_dcb15_entry(struct drm_device *dev, struct dcb_table *dcb, | |||
6166 | entry->type = OUTPUT_TV; | 6166 | entry->type = OUTPUT_TV; |
6167 | break; | 6167 | break; |
6168 | case 2: | 6168 | case 2: |
6169 | case 3: | ||
6170 | entry->type = OUTPUT_LVDS; | ||
6171 | break; | ||
6172 | case 4: | 6169 | case 4: |
6173 | switch ((conn & 0x000000f0) >> 4) { | 6170 | if (conn & 0x10) |
6174 | case 0: | ||
6175 | entry->type = OUTPUT_TMDS; | ||
6176 | break; | ||
6177 | case 1: | ||
6178 | entry->type = OUTPUT_LVDS; | 6171 | entry->type = OUTPUT_LVDS; |
6179 | break; | 6172 | else |
6180 | default: | 6173 | entry->type = OUTPUT_TMDS; |
6181 | NV_ERROR(dev, "Unknown DCB subtype 4/%d\n", | 6174 | break; |
6182 | (conn & 0x000000f0) >> 4); | 6175 | case 3: |
6183 | return false; | 6176 | entry->type = OUTPUT_LVDS; |
6184 | } | ||
6185 | break; | 6177 | break; |
6186 | default: | 6178 | default: |
6187 | NV_ERROR(dev, "Unknown DCB type %d\n", conn & 0x0000000f); | 6179 | NV_ERROR(dev, "Unknown DCB type %d\n", conn & 0x0000000f); |