From 89a2b4812c2efb6d269be70a970054a53095b4dd Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Thu, 8 Mar 2012 09:29:27 -0600 Subject: [PATCH] radeon_hd: Fix APU / DCE 5+ encoder mode switch * Don't touch transmitter. * Potential fix for #8331 and other HD 5xxx, 6xxx mode setting issues. * Missed in my backport drm commit: 3a47824d85eeca122895646f027dc63480994199 * Tested as non-impacting change on my APU --- src/add-ons/accelerants/radeon_hd/encoder.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/add-ons/accelerants/radeon_hd/encoder.cpp b/src/add-ons/accelerants/radeon_hd/encoder.cpp index b72e85f71f..f27a624c0c 100644 --- a/src/add-ons/accelerants/radeon_hd/encoder.cpp +++ b/src/add-ons/accelerants/radeon_hd/encoder.cpp @@ -312,14 +312,13 @@ encoder_mode_set(uint8 id, uint32 pixelClock) case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: - if ((info.chipsetFlags & CHIP_APU) != 0) { - // aka DCE 4.1 + if ((info.chipsetFlags & CHIP_APU) != 0 + || info.dceMajor >= 5) { // Setup DIG encoder encoder_dig_setup(connectorIndex, pixelClock, ATOM_ENCODER_CMD_SETUP); - // Enable DIG transmitter - transmitter_dig_setup(connectorIndex, pixelClock, 0, 0, - ATOM_TRANSMITTER_ACTION_ENABLE); + encoder_dig_setup(connectorIndex, pixelClock, + ATOM_ENCODER_CMD_SETUP_PANEL_MODE); } else if (info.dceMajor >= 4) { // Disable DIG transmitter transmitter_dig_setup(connectorIndex, pixelClock, 0, 0,