Signed-off-by: Alex Deucher <[email protected]>
---
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
_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel