diff mbox

[Bug,60523] Radeon DPM not working with 2 monitors attached to Radeon HD5770 (Juniper)

Message ID bug-60523-2300-lRK9L7mKoi@https.bugzilla.kernel.org/ (mailing list archive)
State New, archived
Headers show

Commit Message

bugzilla-daemon@bugzilla.kernel.org Aug. 15, 2013, 9:08 p.m. UTC
https://bugzilla.kernel.org/show_bug.cgi?id=60523

--- Comment #23 from Alex Deucher <alexdeucher@gmail.com> ---
Ah, you have a system with gddr5 memory.  The blanking period is probably too
short on your monitor to support mclk switching.  Something like this will tell
you for sure:

         */
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/cypress_dpm.c
b/drivers/gpu/drm/radeon/cypress_dpm.c
index 95a66db..cfe8313 100644
--- a/drivers/gpu/drm/radeon/cypress_dpm.c
+++ b/drivers/gpu/drm/radeon/cypress_dpm.c
@@ -2169,6 +2169,8 @@  bool cypress_dpm_vblank_too_short(struct radeon_device
*rdev)
        /* we never hit the non-gddr5 limit so disable it */
        u32 switch_limit = pi->mem_gddr5 ? 450 : 0;

+       DRM_ERROR("vblank_time: %d switch_limit: %d", vblank_time,
switch_limit);
+
        if (vblank_time < switch_limit)
                return true;
        else
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c
b/drivers/gpu/drm/radeon/radeon_pm.c
index a44ae9a..7b4c9db 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -648,10 +648,15 @@  static struct radeon_ps
*radeon_dpm_pick_power_state(struct radeon_device *rdev,

        /* check if the vblank period is too short to adjust the mclk */
        if (single_display && rdev->asic->dpm.vblank_too_short) {
-               if (radeon_dpm_vblank_too_short(rdev))
+               if (radeon_dpm_vblank_too_short(rdev)) {
+                       DRM_ERROR("vblank too short\n");
                        single_display = false;
+               }
        }

+       DRM_ERROR("single display = %d crtcs: %d", single_display,
+                 rdev->pm.dpm.new_active_crtc_count);
+
        /* certain older asics have a separare 3D performance state,
         * so try that first if the user selected performance