summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-01-06 14:59:22 -0500
committerAlex Deucher <alexdeucher@gmail.com>2009-01-06 14:59:22 -0500
commitee6310174c44809c761dbdb423e56e61392a0e10 (patch)
tree22fe284335f60e131022a35d1f110e1d225a7454 /src
parent690999b682c0f954e27d9f1b3a3d8db4ef865c21 (diff)
ATOM: handle cases where TMDS uses linkb
fixes bug 18564
Diffstat (limited to 'src')
-rw-r--r--src/atombios_output.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/atombios_output.c b/src/atombios_output.c
index eb52f5c9..e4e06041 100644
--- a/src/atombios_output.c
+++ b/src/atombios_output.c
@@ -312,6 +312,8 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
if (radeon_output->lvds_misc & (1 << 1))
disp_data.ucMisc |= (1 << 1);
} else {
+ if (radeon_output->linkb)
+ disp_data.ucMisc |= PANEL_ENCODER_MISC_TMDS_LINKB;
if (mode->Clock > 165000)
disp_data.ucMisc |= PANEL_ENCODER_MISC_DUAL;
if (pScrn->rgbBits == 8)
@@ -352,6 +354,8 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_LEVEL_4;
}
} else {
+ if (radeon_output->linkb)
+ disp_data2.ucMisc |= PANEL_ENCODER_MISC_TMDS_LINKB;
if (mode->Clock > 165000)
disp_data2.ucMisc |= PANEL_ENCODER_MISC_DUAL;
}
@@ -441,7 +445,10 @@ atombios_output_dig_encoder_setup(xf86OutputPtr output, int device, DisplayModeP
disp_data.ucConfig |= ATOM_ENCODER_CONFIG_LINKA_B;
disp_data.ucLaneNum = 8;
} else {
- disp_data.ucConfig |= ATOM_ENCODER_CONFIG_LINKA;
+ if (radeon_output->linkb)
+ disp_data.ucConfig |= ATOM_ENCODER_CONFIG_LINKB;
+ else
+ disp_data.ucConfig |= ATOM_ENCODER_CONFIG_LINKA;
disp_data.ucLaneNum = 4;
}