mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-16 14:02:10 +00:00
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>
This commit is contained in:
parent
d31e078d84
commit
fba6752834
@ -6166,23 +6166,15 @@ parse_dcb15_entry(struct drm_device *dev, struct dcb_table *dcb,
|
|||||||
entry->type = OUTPUT_TV;
|
entry->type = OUTPUT_TV;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
case 4:
|
||||||
|
if (conn & 0x10)
|
||||||
|
entry->type = OUTPUT_LVDS;
|
||||||
|
else
|
||||||
|
entry->type = OUTPUT_TMDS;
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
entry->type = OUTPUT_LVDS;
|
entry->type = OUTPUT_LVDS;
|
||||||
break;
|
break;
|
||||||
case 4:
|
|
||||||
switch ((conn & 0x000000f0) >> 4) {
|
|
||||||
case 0:
|
|
||||||
entry->type = OUTPUT_TMDS;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
entry->type = OUTPUT_LVDS;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
NV_ERROR(dev, "Unknown DCB subtype 4/%d\n",
|
|
||||||
(conn & 0x000000f0) >> 4);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
NV_ERROR(dev, "Unknown DCB type %d\n", conn & 0x0000000f);
|
NV_ERROR(dev, "Unknown DCB type %d\n", conn & 0x0000000f);
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user