drm/radeon/kms: re-apply 2007d633d639c896396e4c4b53b38068f3831307
authorAlex Deucher <alexdeucher@gmail.com>
Tue, 8 Sep 2009 18:22:45 +0000 (14:22 -0400)
committerDave Airlie <airlied@linux.ie>
Tue, 8 Sep 2009 19:35:37 +0000 (05:35 +1000)
Got accidently reverted by c93bb85b5cba3e3a06f2cad8e9bc5c23d3d10aac

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
drivers/gpu/drm/radeon/radeon_encoders.c

index 8a353eab4f32c50c0043a994a5c1b184ee12e9eb..9ad20350118ff8fae88f861024a28ba70db5f881 100644 (file)
@@ -1400,8 +1400,14 @@ radeon_add_atom_encoder(struct drm_device *dev, uint32_t encoder_id, uint32_t su
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
        case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1:
        case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2:
-               drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS);
-               radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder);
+               if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
+                       radeon_encoder->rmx_type = RMX_FULL;
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_LVDS);
+                       radeon_encoder->enc_priv = radeon_atombios_get_lvds_info(radeon_encoder);
+               } else {
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS);
+                       radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder);
+               }
                drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs);
                break;
        }