diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-11-23 12:54:41 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-11-23 12:54:41 -0500 |
commit | 26ecf3aad5f3a70b3267614bff6030604820f4d9 (patch) | |
tree | 1fa86d9ad39809bdc66eddfb611adf7d2f44cc28 | |
parent | 51266161f70baf4ddbf79ba6225ee2ae107a9f36 (diff) |
DCE3.2: fix uniphy2 dvi issues
In some cases the atom transmitter table sets the
golden value of this reg differently which some monitors
don't like. I haven't had time to dig further, so this
works around it for now.
Fixes fdo bug 24313
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
-rw-r--r-- | src/atombios_output.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/atombios_output.c b/src/atombios_output.c index 57345b34..66a86f47 100644 --- a/src/atombios_output.c +++ b/src/atombios_output.c @@ -1472,6 +1472,18 @@ atombios_apply_output_quirks(xf86OutputPtr output, DisplayModePtr mode) /* set scaler clears this on some chips */ if (IS_AVIVO_VARIANT && (mode->Flags & V_INTERLACE)) OUTREG(AVIVO_D1MODE_DATA_FORMAT + radeon_crtc->crtc_offset, AVIVO_D1MODE_INTERLEAVE_EN); + + if (IS_DCE32_VARIANT && (radeon_output->active_device & (ATOM_DEVICE_DFP_SUPPORT))) { + radeon_encoder_ptr radeon_encoder = radeon_get_encoder(output); + if (radeon_encoder == NULL) + return; + /* XXX: need to sort out why transmitter control table sometimes sets this to a + * different golden value. + */ + if (radeon_encoder->encoder_id == ENCODER_OBJECT_ID_INTERNAL_UNIPHY2) { + OUTREG(0x7ec4, 0x00824002); + } + } } void |