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