diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_connectors.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index bce63fd329d4..449c3d8c6836 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
| @@ -1303,23 +1303,14 @@ radeon_dp_detect(struct drm_connector *connector, bool force) | |||
| 1303 | /* get the DPCD from the bridge */ | 1303 | /* get the DPCD from the bridge */ |
| 1304 | radeon_dp_getdpcd(radeon_connector); | 1304 | radeon_dp_getdpcd(radeon_connector); |
| 1305 | 1305 | ||
| 1306 | if (radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) | 1306 | if (encoder) { |
| 1307 | ret = connector_status_connected; | 1307 | /* setup ddc on the bridge */ |
| 1308 | else { | 1308 | radeon_atom_ext_encoder_setup_ddc(encoder); |
| 1309 | /* need to setup ddc on the bridge */ | ||
| 1310 | if (encoder) | ||
| 1311 | radeon_atom_ext_encoder_setup_ddc(encoder); | ||
| 1312 | if (radeon_ddc_probe(radeon_connector, | 1309 | if (radeon_ddc_probe(radeon_connector, |
| 1313 | radeon_connector->requires_extended_probe)) | 1310 | radeon_connector->requires_extended_probe)) /* try DDC */ |
| 1314 | ret = connector_status_connected; | 1311 | ret = connector_status_connected; |
| 1315 | } | 1312 | else if (radeon_connector->dac_load_detect) { /* try load detection */ |
| 1316 | 1313 | struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private; | |
| 1317 | if ((ret == connector_status_disconnected) && | ||
| 1318 | radeon_connector->dac_load_detect) { | ||
| 1319 | struct drm_encoder *encoder = radeon_best_single_encoder(connector); | ||
| 1320 | struct drm_encoder_helper_funcs *encoder_funcs; | ||
| 1321 | if (encoder) { | ||
| 1322 | encoder_funcs = encoder->helper_private; | ||
| 1323 | ret = encoder_funcs->detect(encoder, connector); | 1314 | ret = encoder_funcs->detect(encoder, connector); |
| 1324 | } | 1315 | } |
| 1325 | } | 1316 | } |
