drm/radeon/kms/DCE4.1: fix dig encoder to transmitter mapping
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 12 Oct 2011 22:44:32 +0000 (18:44 -0400)
committerDave Airlie <airlied@redhat.com>
Tue, 18 Oct 2011 09:16:10 +0000 (10:16 +0100)
llano has fully routeable dig encoders similar to DCE3.2 while
ontario has a hardcoded mapping similar to DCE4.0.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_encoders.c

index 8a171b21b453d76dd01665a58ce0b1c650c1f814..a90d9eeb96a363f9ac01924ad287b7c8fb979768 100644 (file)
@@ -1756,10 +1756,15 @@ static int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder)
        if (ASIC_IS_DCE4(rdev)) {
                dig = radeon_encoder->enc_priv;
                if (ASIC_IS_DCE41(rdev)) {
-                       if (dig->linkb)
-                               return 1;
-                       else
-                               return 0;
+                       /* ontario follows DCE4 */
+                       if (rdev->family == CHIP_PALM) {
+                               if (dig->linkb)
+                                       return 1;
+                               else
+                                       return 0;
+                       } else
+                               /* llano follows DCE3.2 */
+                               return radeon_crtc->crtc_id;
                } else {
                        switch (radeon_encoder->encoder_id) {
                        case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: