xf86-video-ati: Branch 'master' - 2 commits

Dave Airlie airlied at kemper.freedesktop.org
Mon Sep 18 09:13:16 EEST 2006


 src/radeon_driver.c |   29 +++++++++++++++++++++++++++--
 1 files changed, 27 insertions(+), 2 deletions(-)

New commits:
diff-tree 25fa71ca0a24190cc8be2e80769443e0e09303b3 (from 39fcac431eba60adf2d4e357cfc811dbae36a4e1)
Author: Henry Zhao <henryz at ati.com>
Date:   Mon Sep 18 03:15:54 2006 +1000

    Power up DAC around check for CRT connectedness

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 2d913c2..89fa9f5 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1082,6 +1082,7 @@ RADEONCrtIsPhysicallyConnected(ScrnInfoP
     if(IsCrtDac) {
 	unsigned long ulOrigVCLK_ECP_CNTL;
 	unsigned long ulOrigDAC_CNTL;
+	unsigned long ulOrigDAC_MACRO_CNTL;
 	unsigned long ulOrigDAC_EXT_CNTL;
 	unsigned long ulOrigCRTC_EXT_CNTL;
 	unsigned long ulData;
@@ -1116,6 +1117,15 @@ RADEONCrtIsPhysicallyConnected(ScrnInfoP
 	OUTREG(RADEON_DAC_EXT_CNTL, ulData);
 
 	ulOrigDAC_CNTL     = INREG(RADEON_DAC_CNTL);
+
+	if (ulOrigDAC_CNTL & RADEON_DAC_PDWN) {
+	    /* turn on power so testing can go through */
+	    ulOrigDAC_MACRO_CNTL = INREG(RADEON_DAC_MACRO_CNTL);
+	    ulOrigDAC_MACRO_CNTL &= ~(RADEON_DAC_PDWN_R | RADEON_DAC_PDWN_G |
+		RADEON_DAC_PDWN_B);
+	    OUTREG(RADEON_DAC_MACRO_CNTL, ulOrigDAC_MACRO_CNTL);
+	}
+
 	ulData             = ulOrigDAC_CNTL;
 	ulData            |= RADEON_DAC_CMP_EN;
 	ulData            &= ~(RADEON_DAC_RANGE_CNTL_MASK
@@ -1135,6 +1145,18 @@ RADEONCrtIsPhysicallyConnected(ScrnInfoP
 	OUTREG(RADEON_DAC_CNTL,      ulOrigDAC_CNTL     );
 	OUTREG(RADEON_DAC_EXT_CNTL,  ulOrigDAC_EXT_CNTL );
 	OUTREG(RADEON_CRTC_EXT_CNTL, ulOrigCRTC_EXT_CNTL);
+
+	if (!bConnected) {
+	    /* Power DAC down if CRT is not connected */
+            ulOrigDAC_MACRO_CNTL = INREG(RADEON_DAC_MACRO_CNTL);
+            ulOrigDAC_MACRO_CNTL |= (RADEON_DAC_PDWN_R | RADEON_DAC_PDWN_G |
+	    	RADEON_DAC_PDWN_B);
+            OUTREG(RADEON_DAC_MACRO_CNTL, ulOrigDAC_MACRO_CNTL);
+
+	    ulData     = INREG(RADEON_DAC_CNTL);
+	    ulData     |= RADEON_DAC_PDWN ;
+	    OUTREG(RADEON_DAC_CNTL, ulData);
+    	}
     } else { /* TV DAC */
 
         /* This doesn't seem to work reliably (maybe worse on some OEM cards),
diff-tree 39fcac431eba60adf2d4e357cfc811dbae36a4e1 (from 7d9e2b450f0fa42553156f57572a6dab70a0ea13)
Author: Henry Zhao <henryz at ati.com>
Date:   Mon Sep 18 03:09:43 2006 +1000

    Bump up clock rate for ES1000 to allow higher resolutions

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 4b79f28..2d913c2 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1694,9 +1694,12 @@ static void RADEONGetClockInfo(ScrnInfoP
     if (info->ChipFamily == CHIP_FAMILY_RV100 && !info->HasCRTC2) {
         /* Avoid RN50 corruption due to memory bandwidth starvation.
          * 18 is an empirical value based on the databook and Windows driver.
-        */
+         *
+	 * Empirical value changed to 24 to raise pixel clock limit and
+	 * allow higher resolution modes on capable monitors
+	 */
         pll->max_pll_freq = min(pll->max_pll_freq,
-                               18 * info->mclk * 100 / pScrn->bitsPerPixel *
+                               24 * info->mclk * 100 / pScrn->bitsPerPixel *
                                info->RamWidth / 16);
     }
 



More information about the xorg-commit mailing list