drm/radeon/kms: enable frac fb divs on rs600/rs690/rs740
authorAlex Deucher <alexdeucher@gmail.com>
Mon, 13 Jul 2009 15:09:56 +0000 (11:09 -0400)
committerDave Airlie <airlied@redhat.com>
Wed, 15 Jul 2009 07:13:23 +0000 (17:13 +1000)
Allows us to hit dot clocks much closer, especially on
chips with non-27 Mhz reference clocks like most IGP chips.
This fixes most flickering and blanking problems with
non-exact dot clocks on these chips.

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

index c0080cc9bf8d9a816390cfb0ebd5451e2d66cdbf..e64a199b5ee1c7b62ae81ad8a8e7d23bf2deb9c8 100644 (file)
@@ -203,6 +203,12 @@ void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode)
        if (ASIC_IS_AVIVO(rdev)) {
                uint32_t ss_cntl;
 
+               if ((rdev->family == CHIP_RS600) ||
+                   (rdev->family == CHIP_RS690) ||
+                   (rdev->family == CHIP_RS740))
+                       pll_flags |= (RADEON_PLL_USE_FRAC_FB_DIV |
+                                     RADEON_PLL_PREFER_CLOSEST_LOWER);
+
                if (ASIC_IS_DCE32(rdev) && mode->clock > 200000)        /* range limits??? */
                        pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
                else