|
@@ -79,10 +79,16 @@ void radeon_connector_hotplug(struct drm_connector *connector)
|
|
|
if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
|
|
|
int saved_dpms = connector->dpms;
|
|
|
/* Only turn off the display if it's physically disconnected */
|
|
|
- if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
|
|
|
+ if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) {
|
|
|
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
|
|
|
- else if (radeon_dp_needs_link_train(radeon_connector))
|
|
|
+ } else if (radeon_dp_needs_link_train(radeon_connector)) {
|
|
|
+ /* set it to OFF so that drm_helper_connector_dpms()
|
|
|
+ * won't return immediately since the current state
|
|
|
+ * is ON at this point.
|
|
|
+ */
|
|
|
+ connector->dpms = DRM_MODE_DPMS_OFF;
|
|
|
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
|
|
|
+ }
|
|
|
connector->dpms = saved_dpms;
|
|
|
}
|
|
|
}
|