drm/radeon/kms: properly set the CLK_REF bit for DCE3 devices
authorAlex Deucher <alexdeucher@gmail.com>
Fri, 20 May 2011 16:36:12 +0000 (12:36 -0400)
committerDave Airlie <airlied@gmail.com>
Sun, 22 May 2011 10:20:05 +0000 (20:20 +1000)
If the ss clock is external, the CLK_REF bit needs to be set
in the SetPixelClock parameters.  This should fix DP failures
in the channel equalization loop.

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

index dab06fb17cb2d44e147c487e660404d4e12857fd..f5819ba481d961c15452c4c351b947c0c2d0b098 100644 (file)
@@ -815,6 +815,8 @@ static void atombios_crtc_program_pll(struct drm_crtc *crtc,
                        args.v3.ucPostDiv = post_div;
                        args.v3.ucPpll = pll_id;
                        args.v3.ucMiscInfo = (pll_id << 2);
+                       if (ss_enabled && (ss->type & ATOM_EXTERNAL_SS_MASK))
+                               args.v3.ucMiscInfo |= PIXEL_CLOCK_MISC_REF_DIV_SRC;
                        args.v3.ucTransmitterId = encoder_id;
                        args.v3.ucEncoderMode = encoder_mode;
                        break;