diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c index 341df86..2cc5ea7 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c @@ -29,6 +29,8 @@ #include "radeon.h" #include "atom.h" +extern void radeon_crtc_dpms(struct drm_crtc *crtc, int mode); + static void radeon_legacy_encoder_disable(struct drm_encoder *encoder) { struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); @@ -133,7 +135,9 @@ static void radeon_legacy_lvds_commit(struct drm_encoder *encoder) { struct radeon_device *rdev = encoder->dev->dev_private; + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_OFF); radeon_legacy_lvds_dpms(encoder, DRM_MODE_DPMS_ON); + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_ON); if (rdev->is_atom_bios) radeon_atom_output_lock(encoder, false); else @@ -304,7 +308,9 @@ static void radeon_legacy_primary_dac_commit(struct drm_encoder *encoder) { struct radeon_device *rdev = encoder->dev->dev_private; + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_OFF); radeon_legacy_primary_dac_dpms(encoder, DRM_MODE_DPMS_ON); + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_ON); if (rdev->is_atom_bios) radeon_atom_output_lock(encoder, false); @@ -490,7 +496,9 @@ static void radeon_legacy_tmds_int_commit(struct drm_encoder *encoder) { struct radeon_device *rdev = encoder->dev->dev_private; + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_OFF); radeon_legacy_tmds_int_dpms(encoder, DRM_MODE_DPMS_ON); + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_ON); if (rdev->is_atom_bios) radeon_atom_output_lock(encoder, true); @@ -655,7 +663,9 @@ static void radeon_legacy_tmds_ext_prepare(struct drm_encoder *encoder) static void radeon_legacy_tmds_ext_commit(struct drm_encoder *encoder) { struct radeon_device *rdev = encoder->dev->dev_private; + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_OFF); radeon_legacy_tmds_ext_dpms(encoder, DRM_MODE_DPMS_ON); + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_ON); if (rdev->is_atom_bios) radeon_atom_output_lock(encoder, false); @@ -864,7 +874,9 @@ static void radeon_legacy_tv_dac_commit(struct drm_encoder *encoder) { struct radeon_device *rdev = encoder->dev->dev_private; + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_OFF); radeon_legacy_tv_dac_dpms(encoder, DRM_MODE_DPMS_ON); + radeon_crtc_dpms(encoder->crtc, DRM_MODE_DPMS_ON); if (rdev->is_atom_bios) radeon_atom_output_lock(encoder, true);