diff options
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_connectors.c | 10 |
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 | } |