From 1971dc6d758dea13b9fb6d1c8f516c165628b5e5 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Tue, 8 Jun 2010 11:18:28 -0400 Subject: [PATCH] radeon: fix rn50 cloning with kms Since they only have one crtc sometimes the xserver doesn't assign a crtc to one of the outputs even though both outputs have common modes which results in only one monitor being enabled. Assign a crtc in preinit so that both outputs light up. Signed-off-by: Alex Deucher --- src/radeon_kms.c | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 3c832ca..317dacb 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -517,6 +517,26 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) else pRADEONEnt->HasCRTC2 = TRUE; + + /* fix up cloning on rn50 cards + * since they only have one crtc sometimes the xserver doesn't assign + * a crtc to one of the outputs even though both outputs have common modes + * which results in only one monitor being enabled. Assign a crtc here so + * that both outputs light up. + */ + if (info->ChipFamily == CHIP_FAMILY_RV100 && !pRADEONEnt->HasCRTC2) { + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); + int i; + + for (i = 0; i < xf86_config->num_output; i++) { + xf86OutputPtr output = xf86_config->output[i]; + + /* XXX: double check crtc mode */ + if ((output->probed_modes != NULL) && (output->crtc == NULL)) + output->crtc = xf86_config->crtc[0]; + } + } + { struct drm_radeon_gem_info mminfo; -- 1.7.0.1