From 87625e8c11f0cdb9a0496863f6c7a3f54aa15970 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Thu, 28 Aug 2014 11:52:12 +1000 Subject: disp/gf110-: magic that might help some tmds issues The binary driver has been doing this since GF119, and we've somehow gotten away with it. But, TMDS that hasn't been initialised already by the x86 vbios code is distorted without it on GM204. Signed-off-by: Ben Skeggs --- nvkm/engine/disp/nvd0.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'nvkm') diff --git a/nvkm/engine/disp/nvd0.c b/nvkm/engine/disp/nvd0.c index 747e64bb9..2aae9d3a5 100644 --- a/nvkm/engine/disp/nvd0.c +++ b/nvkm/engine/disp/nvd0.c @@ -1063,10 +1063,18 @@ nvd0_disp_intr_unk2_2(struct nv50_disp_priv *priv, int head) addr = 0x612280 + (ffs(outp->info.or) - 1) * 0x800; data = 0x00000000; } else { - if (outp->info.type == DCB_OUTPUT_DP) - nvd0_disp_intr_unk2_2_tu(priv, head, &outp->info); addr = 0x612300 + (ffs(outp->info.or) - 1) * 0x800; data = (conf & 0x0100) ? 0x00000101 : 0x00000000; + switch (outp->info.type) { + case DCB_OUTPUT_TMDS: + nv_mask(priv, addr, 0x007c0000, 0x00280000); + break; + case DCB_OUTPUT_DP: + nvd0_disp_intr_unk2_2_tu(priv, head, &outp->info); + break; + default: + break; + } } nv_mask(priv, addr, 0x00000707, data); -- cgit v1.2.1