Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
---
 drivers/gpu/drm/radeon/radeon_encoders.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c 
b/drivers/gpu/drm/radeon/radeon_encoders.c
index 3d38cba..b497a65 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -1068,6 +1068,9 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int 
mode)
                        if (atombios_get_encoder_mode(encoder) == 
ATOM_ENCODER_MODE_DP) {
                                struct drm_connector *connector = 
radeon_get_connector_for_encoder(encoder);

+                               if (ASIC_IS_DCE4(rdev) &&
+                                   (connector->connector_type == 
DRM_MODE_CONNECTOR_eDP))
+                                       atombios_dig_transmitter_setup(encoder, 
ATOM_TRANSMITTER_ACTION_POWER_ON, 0, 0);
                                dp_link_train(encoder, connector);
                                if (ASIC_IS_DCE4(rdev))
                                        atombios_dig_encoder_setup(encoder, 
ATOM_ENCODER_CMD_DP_VIDEO_ON);
@@ -1078,8 +1081,14 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, 
int mode)
                case DRM_MODE_DPMS_OFF:
                        atombios_dig_transmitter_setup(encoder, 
ATOM_TRANSMITTER_ACTION_DISABLE_OUTPUT, 0, 0);
                        if (atombios_get_encoder_mode(encoder) == 
ATOM_ENCODER_MODE_DP) {
-                               if (ASIC_IS_DCE4(rdev))
+                               if (ASIC_IS_DCE4(rdev)) {
+                                       struct drm_connector *connector = 
radeon_get_connector_for_encoder(encoder);
+
                                        atombios_dig_encoder_setup(encoder, 
ATOM_ENCODER_CMD_DP_VIDEO_OFF);
+                                       if (connector && 
(connector->connector_type == DRM_MODE_CONNECTOR_eDP))
+                                               
atombios_dig_transmitter_setup(encoder,
+                                                                              
ATOM_TRANSMITTER_ACTION_POWER_OFF, 0, 0);
+                               }
                        }
                        break;
                }
-- 
1.7.1.1

Reply via email to