summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-02-03 03:52:07 -0500
committerAlex Deucher <alexdeucher@gmail.com>2010-02-03 03:52:07 -0500
commitecbc26431914216a8b207e81451282ea07c8b92f (patch)
tree8916f8e276af785cbc943c4206eddf3f46198164
parent710a2fd07235349f084ec40626cc28fbae523d27 (diff)
evergreen: blank/unblank DP in dpms calls
-rw-r--r--src/atombios_output.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/atombios_output.c b/src/atombios_output.c
index d7c396bf..547cd139 100644
--- a/src/atombios_output.c
+++ b/src/atombios_output.c
@@ -1417,7 +1417,9 @@ atombios_output_dpms(xf86OutputPtr output, int mode)
if (((radeon_output->ConnectorType == CONNECTOR_DISPLAY_PORT) ||
(radeon_output->ConnectorType == CONNECTOR_EDP)) &&
(radeon_output->MonType == MT_DP)) {
- do_displayport_link_train(output);
+ do_displayport_link_train(output);
+ if (IS_DCE4_VARIANT)
+ atombios_dce4_output_dig_encoder_setup(output, ATOM_ENCODER_CMD_DP_VIDEO_ON);
}
}
else {
@@ -1442,9 +1444,15 @@ atombios_output_dpms(xf86OutputPtr output, int mode)
case DPMSModeOff:
radeon_encoder->devices &= ~(radeon_output->active_device);
if (!radeon_encoder->devices) {
- if (is_dig)
+ if (is_dig) {
+ if (((radeon_output->ConnectorType == CONNECTOR_DISPLAY_PORT) ||
+ (radeon_output->ConnectorType == CONNECTOR_EDP)) &&
+ (radeon_output->MonType == MT_DP)) {
+ if (IS_DCE4_VARIANT)
+ atombios_dce4_output_dig_encoder_setup(output, ATOM_ENCODER_CMD_DP_VIDEO_OFF);
+ }
atombios_output_dig_transmitter_setup(output, ATOM_TRANSMITTER_ACTION_DISABLE_OUTPUT, 0, 0);
- else {
+ } else {
disp_data.ucAction = ATOM_DISABLE;
data.exec.index = index;
data.exec.dataSpace = (void *)&space;