xf86-video-ati: Branch 'master'

Alex Deucher agd5f at kemper.freedesktop.org
Wed Mar 4 08:21:38 PST 2009


 src/radeon_driver.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

New commits:
commit b1fd883b59b85fed8782e035890098908902f4ce
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Wed Mar 4 11:17:16 2009 -0500

    RN50: fix up cloning on servers
    
    Since the rn50 only has one crtc, but often has multiple outputs,
    occasionally one of the outputs doesn't get a crtc assigned eventhough
    the outputs may have common modes.  If we see an output with modes, but
    no crtc, assign it so all the attached outputs light up.
    
    fixes bugs 19457 and similar ones

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 7cac321..8a28f3f 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -2964,6 +2964,24 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
       goto fail;
    }
 
+    /* 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) {
+	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];
+	}
+    }
+
     ErrorF("after xf86InitialConfiguration\n");
 
     RADEONSetPitch(pScrn);


More information about the xorg-commit mailing list