diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-10-27 11:39:06 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-10-27 11:39:06 -0400 |
commit | 5a0019126a57138ee506d9a66738c9e8b75cbb96 (patch) | |
tree | 3f5cddab19cf311b793c604da4bc109233ba9a22 /src/atombios_crtc.c | |
parent | 2a6eeec72d6bb04a32225883f431c1d2e8cff123 (diff) |
radeon: fix DVO on AVIVO chips
DVO generally requires 2x ppll on AVIVO cards due to the
way the tmds chip is wired up. Because of this, disable
cloning of DVO outputs.
fixes fdo bug 21857.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Diffstat (limited to 'src/atombios_crtc.c')
-rw-r--r-- | src/atombios_crtc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c index d513c139..fb7728fa 100644 --- a/src/atombios_crtc.c +++ b/src/atombios_crtc.c @@ -324,6 +324,16 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode) else pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV; + for (i = 0; i < xf86_config->num_output; i++) { + xf86OutputPtr output = xf86_config->output[i]; + if (output->crtc == crtc) { + radeon_encoder = radeon_get_encoder(output); + /* DVO seems to want 2x pixel clock */ + if (radeon_encoder && (radeon_encoder->encoder_id == ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1)) + sclock *= 2; + } + } + /* disable spread spectrum clocking for now -- thanks Hedy Lamarr */ if (radeon_crtc->crtc_id == 0) { temp = INREG(AVIVO_P1PLL_INT_SS_CNTL); |