xf86-video-ati: Branch 'master'
Alex Deucher
agd5f at kemper.freedesktop.org
Tue Feb 17 08:27:56 PST 2009
src/atombios_output.c | 38 +++++++++++++++++++++++++++++++++++++-
1 file changed, 37 insertions(+), 1 deletion(-)
New commits:
commit 31bd6d28dd35021e0e706d4f094989deb856c26a
Author: Alex Deucher <alexdeucher at gmail.com>
Date: Tue Feb 17 11:24:02 2009 -0500
Fix crtc routing on pre-DCE3.2 systems
This should fix peterz and bug 20074
diff --git a/src/atombios_output.c b/src/atombios_output.c
index fa986c4..c4baa13 100644
--- a/src/atombios_output.c
+++ b/src/atombios_output.c
@@ -1267,7 +1267,43 @@ atombios_set_output_crtc_source(xf86OutputPtr output)
case 1:
default:
crtc_src_param.ucCRTC = radeon_crtc->crtc_id;
- crtc_src_param.ucDevice = radeon_get_device_index(radeon_output->active_device);
+ switch (radeon_encoder->encoder_id) {
+ case ENCODER_OBJECT_ID_INTERNAL_TMDS1:
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1:
+ crtc_src_param.ucDevice = ATOM_DEVICE_DFP1_INDEX;
+ break;
+ case ENCODER_OBJECT_ID_INTERNAL_LVDS:
+ case ENCODER_OBJECT_ID_INTERNAL_LVTM1:
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
+ if (radeon_output->active_device & ATOM_DEVICE_LCD1_SUPPORT)
+ crtc_src_param.ucDevice = ATOM_DEVICE_LCD1_INDEX;
+ else
+ crtc_src_param.ucDevice = ATOM_DEVICE_DFP3_INDEX;
+ break;
+ case ENCODER_OBJECT_ID_INTERNAL_DVO1:
+ case ENCODER_OBJECT_ID_INTERNAL_DDI:
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
+ crtc_src_param.ucDevice = ATOM_DEVICE_DFP2_INDEX;
+ break;
+ case ENCODER_OBJECT_ID_INTERNAL_DAC1:
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
+ if (radeon_output->active_device & (ATOM_DEVICE_TV_SUPPORT))
+ crtc_src_param.ucDevice = ATOM_DEVICE_TV1_INDEX;
+ else if (radeon_output->active_device & (ATOM_DEVICE_CV_SUPPORT))
+ crtc_src_param.ucDevice = ATOM_DEVICE_CV_INDEX;
+ else
+ crtc_src_param.ucDevice = ATOM_DEVICE_CRT1_INDEX;
+ break;
+ case ENCODER_OBJECT_ID_INTERNAL_DAC2:
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
+ if (radeon_output->active_device & (ATOM_DEVICE_TV_SUPPORT))
+ crtc_src_param.ucDevice = ATOM_DEVICE_TV1_INDEX;
+ else if (radeon_output->active_device & (ATOM_DEVICE_CV_SUPPORT))
+ crtc_src_param.ucDevice = ATOM_DEVICE_CV_INDEX;
+ else
+ crtc_src_param.ucDevice = ATOM_DEVICE_CRT2_INDEX;
+ break;
+ }
data.exec.pspace = &crtc_src_param;
/*ErrorF("device sourced: 0x%x\n", crtc_src_param.ucDevice);*/
break;
More information about the xorg-commit
mailing list