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