xf86-video-ati: Branch 'master'

Dave Airlie airlied at kemper.freedesktop.org
Fri Oct 6 12:57:29 EEST 2006


 src/radeon_display.c |   37 ++++++++++++++++++++-----------------
 1 files changed, 20 insertions(+), 17 deletions(-)

New commits:
diff-tree c19915a401ccf69046bed03c8d5067f2e72a094e (from b8547aa89f93a7fefbefb1c0d2743999930ac785)
Author: Dave Airlie <airlied at linux.ie>
Date:   Fri Oct 6 09:55:40 2006 +1000

    always turn on DAC for scanning the CRT connect.
    
    Ubuntu 63994 - myself and BenH discussed this as a good idea on irc

diff --git a/src/radeon_display.c b/src/radeon_display.c
index c81bbb7..de44b38 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -340,28 +340,31 @@ 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
-			       | RADEON_DAC_PDWN);
-	ulData            |= 0x2;
+	/* turn on power so testing can go through */
+	ulOrigDAC_CNTL = INREG(RADEON_DAC_CNTL);
+	ulOrigDAC_CNTL &= ~RADEON_DAC_PDWN;
+	OUTREG(RADEON_DAC_CNTL, ulOrigDAC_CNTL);
+
+	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);
+
+	/* Enable comparators and set DAC range to PS2 (VGA) output level */
+	ulData = ulOrigDAC_CNTL;
+	ulData |= RADEON_DAC_CMP_EN;
+	ulData &= ~RADEON_DAC_RANGE_CNTL_MASK;
+	ulData |= 0x2;
 	OUTREG(RADEON_DAC_CNTL, ulData);
 
+	/* Settle down */
 	usleep(10000);
 
+	/* Read comparators */
 	ulData     = INREG(RADEON_DAC_CNTL);
 	bConnected =  (RADEON_DAC_CMP_OUTPUT & ulData)?1:0;
 
+	/* Restore things */
 	ulData    = ulOrigVCLK_ECP_CNTL;
 	ulMask    = 0xFFFFFFFFL;
 	OUTPLLP(pScrn, RADEON_VCLK_ECP_CNTL, ulData, ulMask);
@@ -377,8 +380,8 @@ RADEONCrtIsPhysicallyConnected(ScrnInfoP
 	    	RADEON_DAC_PDWN_B);
             OUTREG(RADEON_DAC_MACRO_CNTL, ulOrigDAC_MACRO_CNTL);
 
-	    ulData     = INREG(RADEON_DAC_CNTL);
-	    ulData     |= RADEON_DAC_PDWN ;
+	    ulData = INREG(RADEON_DAC_CNTL);
+	    ulData |= RADEON_DAC_PDWN;
 	    OUTREG(RADEON_DAC_CNTL, ulData);
     	}
     } else { /* TV DAC */



More information about the xorg-commit mailing list