diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-03-20 13:44:00 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-03-20 13:44:00 -0400 |
commit | 1ddee7cd6fd267b2fc86f21af27c5425eb0835a4 (patch) | |
tree | 61c04eb2e8e5eb95d32eee8217ed11d7926884cd /src | |
parent | 44081e8fd2bf974272d5447b45dd7b206cf939c1 (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/radeon_output.c | 21 |
1 files 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)) |