drm/radeon/kms: disable PPLL0 on DCE6.1 when not in use
authorAlex Deucher <alexdeucher@gmail.com>
Tue, 20 Mar 2012 21:18:33 +0000 (17:18 -0400)
committerDave Airlie <airlied@redhat.com>
Wed, 21 Mar 2012 06:55:56 +0000 (06:55 +0000)
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/atombios_crtc.c

index 92263af..a5c4e3f 100644 (file)
@@ -1646,6 +1646,8 @@ static void atombios_crtc_commit(struct drm_crtc *crtc)
 static void atombios_crtc_disable(struct drm_crtc *crtc)
 {
        struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
+       struct drm_device *dev = crtc->dev;
+       struct radeon_device *rdev = dev->dev_private;
        struct radeon_atom_ss ss;
 
        atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
@@ -1657,6 +1659,12 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
                atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id,
                                          0, 0, ATOM_DISABLE, 0, 0, 0, 0, 0, false, &ss);
                break;
+       case ATOM_PPLL0:
+               /* disable the ppll */
+               if (ASIC_IS_DCE61(rdev))
+                       atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id,
+                                                 0, 0, ATOM_DISABLE, 0, 0, 0, 0, 0, false, &ss);
+               break;
        default:
                break;
        }