diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2011-06-13 17:13:33 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-06-16 19:28:02 -0400 |
commit | d629a3ceb4fc1ab5aab737b964100d114aba1173 (patch) | |
tree | 9bf07b4c4e2552b070283a347fb6c314c813dffa /drivers/gpu/drm/radeon/radeon_connectors.c | |
parent | 7ec478f835a391d27491493ebfd91f2bed98dbd9 (diff) |
drm/radeon/kms: add support for load detection on dp bridges
dp to vga bridges for example.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_connectors.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_connectors.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index c04e18ee8a87..dc7852b3c5ca 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
@@ -1235,6 +1235,16 @@ radeon_dp_detect(struct drm_connector *connector, bool force) | |||
1235 | ret = connector_status_connected; | 1235 | ret = connector_status_connected; |
1236 | } | 1236 | } |
1237 | } | 1237 | } |
1238 | |||
1239 | if ((ret == connector_status_disconnected) && | ||
1240 | radeon_connector->dac_load_detect) { | ||
1241 | struct drm_encoder *encoder = radeon_best_single_encoder(connector); | ||
1242 | struct drm_encoder_helper_funcs *encoder_funcs; | ||
1243 | if (encoder) { | ||
1244 | encoder_funcs = encoder->helper_private; | ||
1245 | ret = encoder_funcs->detect(encoder, connector); | ||
1246 | } | ||
1247 | } | ||
1238 | } | 1248 | } |
1239 | 1249 | ||
1240 | radeon_connector_update_scratch_regs(connector, ret); | 1250 | radeon_connector_update_scratch_regs(connector, ret); |
@@ -1408,6 +1418,10 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1408 | default: | 1418 | default: |
1409 | connector->interlace_allowed = true; | 1419 | connector->interlace_allowed = true; |
1410 | connector->doublescan_allowed = true; | 1420 | connector->doublescan_allowed = true; |
1421 | radeon_connector->dac_load_detect = true; | ||
1422 | drm_connector_attach_property(&radeon_connector->base, | ||
1423 | rdev->mode_info.load_detect_property, | ||
1424 | 1); | ||
1411 | break; | 1425 | break; |
1412 | case DRM_MODE_CONNECTOR_DVII: | 1426 | case DRM_MODE_CONNECTOR_DVII: |
1413 | case DRM_MODE_CONNECTOR_DVID: | 1427 | case DRM_MODE_CONNECTOR_DVID: |
@@ -1429,6 +1443,12 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1429 | connector->doublescan_allowed = true; | 1443 | connector->doublescan_allowed = true; |
1430 | else | 1444 | else |
1431 | connector->doublescan_allowed = false; | 1445 | connector->doublescan_allowed = false; |
1446 | if (connector_type == DRM_MODE_CONNECTOR_DVII) { | ||
1447 | radeon_connector->dac_load_detect = true; | ||
1448 | drm_connector_attach_property(&radeon_connector->base, | ||
1449 | rdev->mode_info.load_detect_property, | ||
1450 | 1); | ||
1451 | } | ||
1432 | break; | 1452 | break; |
1433 | case DRM_MODE_CONNECTOR_LVDS: | 1453 | case DRM_MODE_CONNECTOR_LVDS: |
1434 | case DRM_MODE_CONNECTOR_eDP: | 1454 | case DRM_MODE_CONNECTOR_eDP: |