[PATCH 4/4] drm/radeon/kms/dce4: power up/down eDP panels in dpms function
Alex Deucher
alexdeucher at gmail.com
Thu Aug 12 15:58:49 PDT 2010
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
More information about the dri-devel
mailing list