aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2010-08-24 17:02:02 -0400
committerBen Skeggs <bskeggs@redhat.com>2010-08-26 01:11:31 -0400
commitfba675283429e41270feb661a1f6f3bc05d71981 (patch)
tree5c0ddd96ed967c1297c0181ecd383a3b3eb70687 /drivers
parentd31e078d847fb2816d26c9476f4a68e89dc65a0b (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.c20
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);