]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
drm/radeon/kms: DCE6 disp eng pll updates
authorAlex Deucher <alexander.deucher@amd.com>
Tue, 20 Mar 2012 21:18:04 +0000 (17:18 -0400)
committerDave Airlie <airlied@redhat.com>
Wed, 21 Mar 2012 06:55:51 +0000 (06:55 +0000)
Rename the function to better match the functionality.
DCPLL became PLL0 on DCE6.

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

index 62ddf8dd9e6948e51a46ce9b84e798676e88ff3f..6fe4a6dc4d6e345f7aaedfdc873ecdc11fa54032 100644 (file)
@@ -737,7 +737,7 @@ union set_pixel_clock {
 /* on DCE5, make sure the voltage is high enough to support the
  * required disp clk.
  */
-static void atombios_crtc_set_dcpll(struct radeon_device *rdev,
+static void atombios_crtc_set_disp_eng_pll(struct radeon_device *rdev,
                                    u32 dispclk)
 {
        u8 frev, crev;
@@ -767,7 +767,10 @@ static void atombios_crtc_set_dcpll(struct radeon_device *rdev,
                         * SetPixelClock provides the dividers
                         */
                        args.v6.ulDispEngClkFreq = cpu_to_le32(dispclk);
-                       args.v6.ucPpll = ATOM_DCPLL;
+                       if (ASIC_IS_DCE6(rdev))
+                               args.v6.ucPpll = ATOM_PPLL0;
+                       else
+                               args.v6.ucPpll = ATOM_DCPLL;
                        break;
                default:
                        DRM_ERROR("Unknown table version %d %d\n", frev, crev);
@@ -1521,10 +1524,12 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
 
 }
 
-void radeon_atom_dcpll_init(struct radeon_device *rdev)
+void radeon_atom_disp_eng_pll_init(struct radeon_device *rdev)
 {
        /* always set DCPLL */
-       if (ASIC_IS_DCE4(rdev)) {
+       if (ASIC_IS_DCE6(rdev))
+               atombios_crtc_set_disp_eng_pll(rdev, rdev->clock.default_dispclk);
+       else if (ASIC_IS_DCE4(rdev)) {
                struct radeon_atom_ss ss;
                bool ss_enabled = radeon_atombios_get_asic_ss_info(rdev, &ss,
                                                                   ASIC_INTERNAL_SS_ON_DCPLL,
@@ -1532,7 +1537,7 @@ void radeon_atom_dcpll_init(struct radeon_device *rdev)
                if (ss_enabled)
                        atombios_crtc_program_ss(rdev, ATOM_DISABLE, ATOM_DCPLL, &ss);
                /* XXX: DCE5, make sure voltage, dispclk is high enough */
-               atombios_crtc_set_dcpll(rdev, rdev->clock.default_dispclk);
+               atombios_crtc_set_disp_eng_pll(rdev, rdev->clock.default_dispclk);
                if (ss_enabled)
                        atombios_crtc_program_ss(rdev, ATOM_ENABLE, ATOM_DCPLL, &ss);
        }
index 9b8dace0c60c2fb87d101126f6f30fc1805630d6..beeefb841c0b76c7579e5803027b1edc9b5614fe 100644 (file)
@@ -967,7 +967,7 @@ int radeon_resume_kms(struct drm_device *dev)
        /* init dig PHYs, disp eng pll */
        if (rdev->is_atom_bios) {
                radeon_atom_encoder_init(rdev);
-               radeon_atom_dcpll_init(rdev);
+               radeon_atom_disp_eng_pll_init(rdev);
        }
        /* reset hpd state */
        radeon_hpd_init(rdev);
index 1ebcef25b9155de3d4bf266d1d62a84b835faef3..8086c96e0b06a4b80cf77a03b43736cefdf713e2 100644 (file)
@@ -1296,7 +1296,7 @@ int radeon_modeset_init(struct radeon_device *rdev)
        /* init dig PHYs, disp eng pll */
        if (rdev->is_atom_bios) {
                radeon_atom_encoder_init(rdev);
-               radeon_atom_dcpll_init(rdev);
+               radeon_atom_disp_eng_pll_init(rdev);
        }
 
        /* initialize hpd */
index 8a85598fb242a4f5c9ed666104020e2e90a651c5..f7eb5d8b9fd3d1b0957d2912da9886b73ac50874 100644 (file)
@@ -491,7 +491,7 @@ extern int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
                                    struct drm_connector *connector);
 extern void atombios_dig_encoder_setup(struct drm_encoder *encoder, int action, int panel_mode);
 extern void radeon_atom_encoder_init(struct radeon_device *rdev);
-extern void radeon_atom_dcpll_init(struct radeon_device *rdev);
+extern void radeon_atom_disp_eng_pll_init(struct radeon_device *rdev);
 extern void atombios_dig_transmitter_setup(struct drm_encoder *encoder,
                                           int action, uint8_t lane_num,
                                           uint8_t lane_set);