summaryrefslogtreecommitdiff
path: root/src/legacy_output.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2008-12-17 00:59:52 -0500
committerAlex Deucher <alexdeucher@gmail.com>2008-12-17 01:02:44 -0500
commitb2b43905a5385a8bb0b59b8e50952863d8dacb59 (patch)
tree566d0e9ea039bd3dddaab16bf399d7914d157048 /src/legacy_output.c
parent3754cc23abac99880eda87d06aa42e16081b6c8a (diff)
Pre-avivo: fix FP setup
- make sure to clear various shadow timing bits - crtc1 select bit was set wrong. - should fix bugs like 19100
Diffstat (limited to 'src/legacy_output.c')
-rw-r--r--src/legacy_output.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/legacy_output.c b/src/legacy_output.c
index e5ddf1f7..f9b0dffb 100644
--- a/src/legacy_output.c
+++ b/src/legacy_output.c
@@ -947,12 +947,19 @@ RADEONInitFPRegisters(xf86OutputPtr output, RADEONSavePtr save,
save->fp_gen_cntl &= ~(RADEON_FP_FPON | RADEON_FP_TMDS_EN);
+ save->fp_gen_cntl &= ~(RADEON_FP_RMX_HVSYNC_CONTROL_EN |
+ RADEON_FP_DFP_SYNC_SEL |
+ RADEON_FP_CRT_SYNC_SEL |
+ RADEON_FP_CRTC_LOCK_8DOT |
+ RADEON_FP_USE_SHADOW_EN |
+ RADEON_FP_CRTC_USE_SHADOW_VEND |
+ RADEON_FP_CRT_SYNC_ALT);
+
if (pScrn->rgbBits == 8)
save->fp_gen_cntl |= RADEON_FP_PANEL_FORMAT; /* 24 bit format */
else
save->fp_gen_cntl &= ~RADEON_FP_PANEL_FORMAT;/* 18 bit format */
-
if (IsPrimary) {
if ((IS_R300_VARIANT) || (info->ChipFamily == CHIP_FAMILY_R200)) {
save->fp_gen_cntl &= ~R200_FP_SOURCE_SEL_MASK;
@@ -961,7 +968,7 @@ RADEONInitFPRegisters(xf86OutputPtr output, RADEONSavePtr save,
else
save->fp_gen_cntl |= R200_FP_SOURCE_SEL_CRTC1;
} else
- save->fp_gen_cntl |= RADEON_FP_SEL_CRTC1;
+ save->fp_gen_cntl &= ~RADEON_FP_SEL_CRTC2;
} else {
if ((IS_R300_VARIANT) || (info->ChipFamily == CHIP_FAMILY_R200)) {
save->fp_gen_cntl &= ~R200_FP_SOURCE_SEL_MASK;
@@ -1037,16 +1044,14 @@ RADEONInitFP2Registers(xf86OutputPtr output, RADEONSavePtr save,
save->fp2_gen_cntl |= R200_FP2_SOURCE_SEL_RMX;
else
save->fp2_gen_cntl |= R200_FP2_SOURCE_SEL_CRTC1;
- } else {
+ } else
save->fp2_gen_cntl &= ~RADEON_FP2_SRC_SEL_CRTC2;
- }
} else {
if ((info->ChipFamily == CHIP_FAMILY_R200) || IS_R300_VARIANT) {
save->fp2_gen_cntl &= ~R200_FP2_SOURCE_SEL_MASK;
save->fp2_gen_cntl |= R200_FP2_SOURCE_SEL_CRTC2;
- } else {
+ } else
save->fp2_gen_cntl |= RADEON_FP2_SRC_SEL_CRTC2;
- }
}
if ((info->ChipFamily == CHIP_FAMILY_RS400) ||