xf86-video-ati: Branch '6.12-branch' - 2 commits

Alex Deucher agd5f at kemper.freedesktop.org
Mon Jan 11 09:48:04 PST 2010


 src/legacy_output.c |   27 +++++++++++++++++++++++----
 src/radeon_output.c |    4 ++++
 2 files changed, 27 insertions(+), 4 deletions(-)

New commits:
commit 6065ca92763fef1a08185854fc07fb60259ca99e
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Mon Jan 4 11:05:44 2010 -0500

    radeon: fix LVDS power sequence on Mac cards
    
    Noticed by John R. Dunning.  Fix taken from radeonfb.
    
    I'm not sure if this sequence would be useful on any PC
    laptops or not so make it mac specific for now.

diff --git a/src/legacy_output.c b/src/legacy_output.c
index 7134ee1..9123d58 100644
--- a/src/legacy_output.c
+++ b/src/legacy_output.c
@@ -912,6 +912,11 @@ legacy_output_dpms(xf86OutputPtr output, int mode)
 	    ErrorF("enable LVDS\n");
 	    tmp = INREG(RADEON_LVDS_GEN_CNTL);
 	    tmp |= (RADEON_LVDS_ON | RADEON_LVDS_BLON | RADEON_LVDS_EN);
+#if defined(__powerpc__)
+	    /* not sure if this is needed on non-Macs */
+	    if (info->MacModel)
+		tmp |= RADEON_LVDS_BL_MOD_EN;
+#endif
 	    tmp &= ~(RADEON_LVDS_DISPLAY_DIS);
 	    usleep (lvds->PanelPwrDly * 1000);
 	    OUTREG(RADEON_LVDS_GEN_CNTL, tmp);
@@ -1001,10 +1006,24 @@ legacy_output_dpms(xf86OutputPtr output, int mode)
 			*/
 			OUTPLLP(pScrn, RADEON_PIXCLKS_CNTL, 0, ~RADEON_PIXCLK_LVDS_ALWAYS_ONb);
 		    }
-		    tmp = INREG(RADEON_LVDS_GEN_CNTL);
-		    tmp |= RADEON_LVDS_DISPLAY_DIS;
-		    tmp &= ~(RADEON_LVDS_ON | RADEON_LVDS_BLON | RADEON_LVDS_EN);
-		    OUTREG(RADEON_LVDS_GEN_CNTL, tmp);
+#if defined(__powerpc__)
+		    /* not sure if this is needed on non-Macs */
+		    if (info->MacModel) {
+			tmp = INREG(RADEON_LVDS_GEN_CNTL);
+			tmp |= RADEON_LVDS_DISPLAY_DIS;
+			tmp &= ~RADEON_LVDS_BL_MOD_EN;
+			OUTREG(RADEON_LVDS_GEN_CNTL, tmp);
+			usleep(100);
+			tmp &= ~(RADEON_LVDS_ON | RADEON_LVDS_EN);
+			OUTREG(RADEON_LVDS_GEN_CNTL, tmp);
+		    } else
+#endif
+		    {
+			tmp = INREG(RADEON_LVDS_GEN_CNTL);
+			tmp |= RADEON_LVDS_DISPLAY_DIS;
+			tmp &= ~(RADEON_LVDS_ON | RADEON_LVDS_BLON | RADEON_LVDS_EN);
+			OUTREG(RADEON_LVDS_GEN_CNTL, tmp);
+		    }
 		    save->lvds_gen_cntl |= RADEON_LVDS_DISPLAY_DIS;
 		    save->lvds_gen_cntl &= ~(RADEON_LVDS_ON | RADEON_LVDS_BLON | RADEON_LVDS_EN);
 		    if (info->IsMobility || info->IsIGP) {
commit e8b9de06482ff792b8d7fa40ce3bc024caca62f6
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Mon Jan 11 12:40:06 2010 -0500

    rv100: reject modes >135 Mhz with DVI
    
    Due to heat issues. fixes bug 25992
    
    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>

diff --git a/src/radeon_output.c b/src/radeon_output.c
index 6b6ba70..4ff34b4 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -439,6 +439,10 @@ radeon_mode_valid(xf86OutputPtr output, DisplayModePtr pMode)
 
     /* single link DVI check */
     if (pMode->Clock > 165000 && radeon_output->MonType == MT_DFP) {
+	/* clocks over 135 MHz have heat issues with DVI on RV100 */
+	if ((info->ChipFamily == CHIP_FAMILY_RV100) && (pMode->Clock > 135000))
+	    return MODE_CLOCK_HIGH;
+
 	/* DP->DVI converter */
 	if (radeon_output->ConnectorType == CONNECTOR_DISPLAY_PORT)
 	    return MODE_CLOCK_HIGH;


More information about the xorg-commit mailing list