Commit ab8f1a2a authored by Alex Deucher's avatar Alex Deucher Committed by Christian König

drm/radeon: use drm_dp_dpcd_read_link_status()

Replace the radeon specific version with the generic version.
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Acked-by: default avatarChristian König <christian.koenig@amd.com>
parent 496263bf
...@@ -549,32 +549,12 @@ int radeon_dp_mode_valid_helper(struct drm_connector *connector, ...@@ -549,32 +549,12 @@ int radeon_dp_mode_valid_helper(struct drm_connector *connector,
return MODE_OK; return MODE_OK;
} }
static bool radeon_dp_get_link_status(struct radeon_connector *radeon_connector,
u8 link_status[DP_LINK_STATUS_SIZE])
{
struct radeon_connector_atom_dig *dig_connector;
int ret;
if (!radeon_connector->con_priv)
return false;
dig_connector = radeon_connector->con_priv;
ret = drm_dp_dpcd_read(&dig_connector->dp_i2c_bus->aux, DP_LANE0_1_STATUS,
link_status, DP_LINK_STATUS_SIZE);
if (ret <= 0) {
return false;
}
DRM_DEBUG_KMS("link status %6ph\n", link_status);
return true;
}
bool radeon_dp_needs_link_train(struct radeon_connector *radeon_connector) bool radeon_dp_needs_link_train(struct radeon_connector *radeon_connector)
{ {
u8 link_status[DP_LINK_STATUS_SIZE]; u8 link_status[DP_LINK_STATUS_SIZE];
struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; struct radeon_connector_atom_dig *dig = radeon_connector->con_priv;
if (!radeon_dp_get_link_status(radeon_connector, link_status)) if (drm_dp_dpcd_read_link_status(&dig->dp_i2c_bus->aux, link_status) <= 0)
return false; return false;
if (drm_dp_channel_eq_ok(link_status, dig->dp_lane_count)) if (drm_dp_channel_eq_ok(link_status, dig->dp_lane_count))
return false; return false;
...@@ -605,7 +585,6 @@ struct radeon_dp_link_train_info { ...@@ -605,7 +585,6 @@ struct radeon_dp_link_train_info {
struct radeon_device *rdev; struct radeon_device *rdev;
struct drm_encoder *encoder; struct drm_encoder *encoder;
struct drm_connector *connector; struct drm_connector *connector;
struct radeon_connector *radeon_connector;
int enc_id; int enc_id;
int dp_clock; int dp_clock;
int dp_lane_count; int dp_lane_count;
...@@ -752,7 +731,8 @@ static int radeon_dp_link_train_cr(struct radeon_dp_link_train_info *dp_info) ...@@ -752,7 +731,8 @@ static int radeon_dp_link_train_cr(struct radeon_dp_link_train_info *dp_info)
while (1) { while (1) {
drm_dp_link_train_clock_recovery_delay(dp_info->dpcd); drm_dp_link_train_clock_recovery_delay(dp_info->dpcd);
if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status)) { if (drm_dp_dpcd_read_link_status(dp_info->aux,
dp_info->link_status) <= 0) {
DRM_ERROR("displayport link status failed\n"); DRM_ERROR("displayport link status failed\n");
break; break;
} }
...@@ -814,7 +794,8 @@ static int radeon_dp_link_train_ce(struct radeon_dp_link_train_info *dp_info) ...@@ -814,7 +794,8 @@ static int radeon_dp_link_train_ce(struct radeon_dp_link_train_info *dp_info)
while (1) { while (1) {
drm_dp_link_train_channel_eq_delay(dp_info->dpcd); drm_dp_link_train_channel_eq_delay(dp_info->dpcd);
if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status)) { if (drm_dp_dpcd_read_link_status(dp_info->aux,
dp_info->link_status) <= 0) {
DRM_ERROR("displayport link status failed\n"); DRM_ERROR("displayport link status failed\n");
break; break;
} }
...@@ -907,7 +888,6 @@ void radeon_dp_link_train(struct drm_encoder *encoder, ...@@ -907,7 +888,6 @@ void radeon_dp_link_train(struct drm_encoder *encoder,
dp_info.rdev = rdev; dp_info.rdev = rdev;
dp_info.encoder = encoder; dp_info.encoder = encoder;
dp_info.connector = connector; dp_info.connector = connector;
dp_info.radeon_connector = radeon_connector;
dp_info.dp_lane_count = dig_connector->dp_lane_count; dp_info.dp_lane_count = dig_connector->dp_lane_count;
dp_info.dp_clock = dig_connector->dp_clock; dp_info.dp_clock = dig_connector->dp_clock;
dp_info.aux = &dig_connector->dp_i2c_bus->aux; dp_info.aux = &dig_connector->dp_i2c_bus->aux;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment