summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/atombios_crtc.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c
index 9a8594a8..ada87f60 100644
--- a/src/atombios_crtc.c
+++ b/src/atombios_crtc.c
@@ -304,12 +304,29 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags)
spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2;
spc3_ptr->ucEncoderMode = ATOM_ENCODER_MODE_CRT;
} else if (radeon_output->MonType == MT_DFP) {
- if (radeon_output->devices & ATOM_DEVICE_DFP1_SUPPORT)
- spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_UNIPHY;
- else if (radeon_output->devices & ATOM_DEVICE_DFP2_SUPPORT)
+ switch (radeon_output->TMDSType) {
+ case TMDS_INT:
+ spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1;
+ break;
+ case TMDS_EXT:
spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1;
- else if (radeon_output->devices & ATOM_DEVICE_DFP3_SUPPORT)
+ break;
+ case TMDS_LVTMA:
spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA;
+ break;
+ case TMDS_UNIPHY:
+ spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_UNIPHY;
+ break;
+ case TMDS_UNIPHY1:
+ spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_UNIPHY1;
+ break;
+ case TMDS_UNIPHY2:
+ spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_UNIPHY2;
+ break;
+ default:
+ ErrorF("Unknown TMDS type: %d!\n", radeon_output->TMDSType);
+ exit(-1);
+ }
if (OUTPUT_IS_DVI)
spc3_ptr->ucEncoderMode = ATOM_ENCODER_MODE_DVI;
else if (radeon_output->type == OUTPUT_HDMI)
@@ -317,8 +334,7 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags)
else if (radeon_output->type == OUTPUT_DP)
spc3_ptr->ucEncoderMode = ATOM_ENCODER_MODE_DP;
} else if (radeon_output->MonType == MT_LCD) {
- if (radeon_output->devices & ATOM_DEVICE_LCD1_SUPPORT)
- spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA;
+ spc3_ptr->ucTransmitterId = ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA;
spc3_ptr->ucEncoderMode = ATOM_ENCODER_MODE_LVDS;
} else if (OUTPUT_IS_TV) {
if (radeon_output->DACType == DAC_PRIMARY)