diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2011-10-31 08:58:47 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-11-01 12:04:39 -0400 |
commit | 1d33e1fc8dcce667a70387b666a8b6f60153d90f (patch) | |
tree | 83ce0cbf593323e00e3fcf2bdf83bdc1a4a2d5ab /drivers/gpu/drm/radeon/radeon_encoders.c | |
parent | 54bd5206bf1615eadee5b87c64252c6991d737dc (diff) |
drm/radeon/kms: rework DP bridge checks
Return the encoder id rather than a boolean. This is needed
for differentiate between multiple DP bridge chips.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_encoders.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index eb3f6dc6df83..9838865e223b 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
@@ -266,7 +266,7 @@ struct drm_encoder *radeon_atom_get_external_encoder(struct drm_encoder *encoder | |||
266 | return NULL; | 266 | return NULL; |
267 | } | 267 | } |
268 | 268 | ||
269 | bool radeon_encoder_is_dp_bridge(struct drm_encoder *encoder) | 269 | u16 radeon_encoder_get_dp_bridge_encoder_id(struct drm_encoder *encoder) |
270 | { | 270 | { |
271 | struct drm_encoder *other_encoder = radeon_atom_get_external_encoder(encoder); | 271 | struct drm_encoder *other_encoder = radeon_atom_get_external_encoder(encoder); |
272 | 272 | ||
@@ -368,7 +368,7 @@ static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, | |||
368 | 368 | ||
369 | if (ASIC_IS_DCE3(rdev) && | 369 | if (ASIC_IS_DCE3(rdev) && |
370 | ((radeon_encoder->active_device & (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) || | 370 | ((radeon_encoder->active_device & (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) || |
371 | radeon_encoder_is_dp_bridge(encoder))) { | 371 | (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE))) { |
372 | struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); | 372 | struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); |
373 | radeon_dp_set_link_config(connector, mode); | 373 | radeon_dp_set_link_config(connector, mode); |
374 | } | 374 | } |
@@ -658,7 +658,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder) | |||
658 | struct radeon_connector_atom_dig *dig_connector; | 658 | struct radeon_connector_atom_dig *dig_connector; |
659 | 659 | ||
660 | /* dp bridges are always DP */ | 660 | /* dp bridges are always DP */ |
661 | if (radeon_encoder_is_dp_bridge(encoder)) | 661 | if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) |
662 | return ATOM_ENCODER_MODE_DP; | 662 | return ATOM_ENCODER_MODE_DP; |
663 | 663 | ||
664 | /* DVO is always DVO */ | 664 | /* DVO is always DVO */ |
@@ -1638,7 +1638,7 @@ atombios_set_encoder_crtc_source(struct drm_encoder *encoder) | |||
1638 | break; | 1638 | break; |
1639 | case 2: | 1639 | case 2: |
1640 | args.v2.ucCRTC = radeon_crtc->crtc_id; | 1640 | args.v2.ucCRTC = radeon_crtc->crtc_id; |
1641 | if (radeon_encoder_is_dp_bridge(encoder)) { | 1641 | if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) { |
1642 | struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); | 1642 | struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); |
1643 | 1643 | ||
1644 | if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS) | 1644 | if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS) |
@@ -2099,7 +2099,8 @@ static void radeon_atom_encoder_prepare(struct drm_encoder *encoder) | |||
2099 | 2099 | ||
2100 | if ((radeon_encoder->active_device & | 2100 | if ((radeon_encoder->active_device & |
2101 | (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) || | 2101 | (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) || |
2102 | radeon_encoder_is_dp_bridge(encoder)) { | 2102 | (radeon_encoder_get_dp_bridge_encoder_id(encoder) != |
2103 | ENCODER_OBJECT_ID_NONE)) { | ||
2103 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; | 2104 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; |
2104 | if (dig) | 2105 | if (dig) |
2105 | dig->dig_encoder = radeon_atom_pick_dig_encoder(encoder); | 2106 | dig->dig_encoder = radeon_atom_pick_dig_encoder(encoder); |