From 1ddee7cd6fd267b2fc86f21af27c5425eb0835a4 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Fri, 20 Mar 2009 13:44:00 -0400 Subject: DCE3.2: use RMX for for non-native modes on DVI DVI seems to have issues with low dotclocks, so use the scaler instead. Fixes bug 20754 --- src/radeon_output.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/radeon_output.c b/src/radeon_output.c index 3931db46..7f68f64c 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -1263,10 +1263,21 @@ radeon_create_resources(xf86OutputPtr output) "RRConfigureOutputProperty error, %d\n", err); } /* Set the current value of the property */ - if (radeon_output->devices & (ATOM_DEVICE_LCD_SUPPORT)) - s = "full"; - else + switch (radeon_output->rmx_type) { + case RMX_OFF: + default: s = "off"; + break; + case RMX_FULL: + s = "full"; + break; + case RMX_CENTER: + s = "center"; + break; + case RMX_ASPECT: + s = "aspect"; + break; + } err = RRChangeOutputProperty(output->randr_output, rmx_atom, XA_STRING, 8, PropModeReplace, strlen(s), (pointer)s, FALSE, FALSE); @@ -1884,6 +1895,10 @@ void RADEONInitConnector(xf86OutputPtr output) else radeon_output->rmx_type = RMX_OFF; + /* dce 3.2 chips have problems with low dot clocks, so use the scaler */ + if (IS_DCE32_VARIANT && (radeon_output->devices & (ATOM_DEVICE_DFP_SUPPORT))) + radeon_output->rmx_type = RMX_FULL; + if (!IS_AVIVO_VARIANT) { if (radeon_output->devices & (ATOM_DEVICE_CRT2_SUPPORT)) { if (xf86ReturnOptValBool(info->Options, OPTION_TVDAC_LOAD_DETECT, FALSE)) -- cgit v1.2.3