aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2011-06-13 17:13:31 -0400
committerDave Airlie <airlied@redhat.com>2011-06-16 19:27:59 -0400
commitfbb87773655e7b0292756f9533c3fc21aca0797f (patch)
treed54d1d4c5b9aab8819dae41bd249b8a23b7f74f8 /drivers
parentba7e05e95880ad80f012555fb8e925cb1f9a5d63 (diff)
drm/radeon/kms: rework atombios_get_encoder_mode()
This should give us more reliable results if the table is called before an active device is set. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/radeon/radeon_encoders.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
index 03f124d626c2..39fa2258f235 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -660,21 +660,16 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
660 if (radeon_encoder_is_dp_bridge(encoder)) 660 if (radeon_encoder_is_dp_bridge(encoder))
661 return ATOM_ENCODER_MODE_DP; 661 return ATOM_ENCODER_MODE_DP;
662 662
663 /* DVO is always DVO */
664 if (radeon_encoder->encoder_id == ATOM_ENCODER_MODE_DVO)
665 return ATOM_ENCODER_MODE_DVO;
666
663 connector = radeon_get_connector_for_encoder(encoder); 667 connector = radeon_get_connector_for_encoder(encoder);
664 if (!connector) { 668 /* if we don't have an active device yet, just use one of
665 switch (radeon_encoder->encoder_id) { 669 * the connectors tied to the encoder.
666 case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: 670 */
667 case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: 671 if (!connector)
668 case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: 672 connector = radeon_get_connector_for_encoder_init(encoder);
669 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
670 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
671 return ATOM_ENCODER_MODE_DVI;
672 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
673 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
674 default:
675 return ATOM_ENCODER_MODE_CRT;
676 }
677 }
678 radeon_connector = to_radeon_connector(connector); 673 radeon_connector = to_radeon_connector(connector);
679 674
680 switch (connector->connector_type) { 675 switch (connector->connector_type) {