aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/radeon/atombios_dp.c12
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c21
-rw-r--r--drivers/gpu/drm/radeon/radeon_mode.h1
3 files changed, 8 insertions, 26 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
index 5f2ddcd5f1e4..8c0f9e36ff8e 100644
--- a/drivers/gpu/drm/radeon/atombios_dp.c
+++ b/drivers/gpu/drm/radeon/atombios_dp.c
@@ -613,18 +613,6 @@ static bool radeon_dp_get_link_status(struct radeon_connector *radeon_connector,
613 return true; 613 return true;
614} 614}
615 615
616bool radeon_dp_needs_link_train(struct radeon_connector *radeon_connector)
617{
618 struct radeon_connector_atom_dig *dig_connector = radeon_connector->con_priv;
619 u8 link_status[DP_LINK_STATUS_SIZE];
620
621 if (!radeon_dp_get_link_status(radeon_connector, link_status))
622 return false;
623 if (dp_channel_eq_ok(link_status, dig_connector->dp_lane_count))
624 return false;
625 return true;
626}
627
628struct radeon_dp_link_train_info { 616struct radeon_dp_link_train_info {
629 struct radeon_device *rdev; 617 struct radeon_device *rdev;
630 struct drm_encoder *encoder; 618 struct drm_encoder *encoder;
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 6c9e17f3970e..5947871e1062 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -50,20 +50,15 @@ void radeon_connector_hotplug(struct drm_connector *connector)
50 struct radeon_device *rdev = dev->dev_private; 50 struct radeon_device *rdev = dev->dev_private;
51 struct radeon_connector *radeon_connector = to_radeon_connector(connector); 51 struct radeon_connector *radeon_connector = to_radeon_connector(connector);
52 52
53 if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) 53 radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd);
54 radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd);
55
56 if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) ||
57 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) {
58 if ((radeon_dp_getsinktype(radeon_connector) == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
59 (radeon_dp_getsinktype(radeon_connector) == CONNECTOR_OBJECT_ID_eDP)) {
60 if (radeon_dp_needs_link_train(radeon_connector)) {
61 if (connector->encoder)
62 radeon_dp_link_train(connector->encoder, connector);
63 }
64 }
65 }
66 54
55 /* pre-r600 did not always have the hpd pins mapped accurately to connectors */
56 if (rdev->family >= CHIP_R600) {
57 if (radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
58 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
59 else
60 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
61 }
67} 62}
68 63
69static void radeon_property_change_mode(struct drm_encoder *encoder) 64static void radeon_property_change_mode(struct drm_encoder *encoder)
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
index 37f57baa68f8..88257bc5729b 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
@@ -470,7 +470,6 @@ extern bool radeon_connector_encoder_is_hbr2(struct drm_connector *connector);
470extern bool radeon_connector_is_dp12_capable(struct drm_connector *connector); 470extern bool radeon_connector_is_dp12_capable(struct drm_connector *connector);
471 471
472extern void radeon_connector_hotplug(struct drm_connector *connector); 472extern void radeon_connector_hotplug(struct drm_connector *connector);
473extern bool radeon_dp_needs_link_train(struct radeon_connector *radeon_connector);
474extern int radeon_dp_mode_valid_helper(struct drm_connector *connector, 473extern int radeon_dp_mode_valid_helper(struct drm_connector *connector,
475 struct drm_display_mode *mode); 474 struct drm_display_mode *mode);
476extern void radeon_dp_set_link_config(struct drm_connector *connector, 475extern void radeon_dp_set_link_config(struct drm_connector *connector,