aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index ea6f60fc188..f1a1e8aa4da 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -81,10 +81,16 @@ void radeon_connector_hotplug(struct drm_connector *connector)
81 if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) { 81 if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
82 int saved_dpms = connector->dpms; 82 int saved_dpms = connector->dpms;
83 /* Only turn off the display if it's physically disconnected */ 83 /* Only turn off the display if it's physically disconnected */
84 if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) 84 if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) {
85 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); 85 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
86 else if (radeon_dp_needs_link_train(radeon_connector)) 86 } else if (radeon_dp_needs_link_train(radeon_connector)) {
87 /* set it to OFF so that drm_helper_connector_dpms()
88 * won't return immediately since the current state
89 * is ON at this point.
90 */
91 connector->dpms = DRM_MODE_DPMS_OFF;
87 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); 92 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
93 }
88 connector->dpms = saved_dpms; 94 connector->dpms = saved_dpms;
89 } 95 }
90 } 96 }