]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
drm/radeon/pm: update current crtc info after setting the powerstate
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Feb 2016 22:38:38 +0000 (17:38 -0500)
committerTim Gardner <tim.gardner@canonical.com>
Wed, 6 Apr 2016 09:26:29 +0000 (10:26 +0100)
BugLink: http://bugs.launchpad.net/bugs/1555640
commit 5e031d9fe8b0741f11d49667dfc3ebf5454121fd upstream.

On CI, we need to see if the number of crtcs changes to determine
whether or not we need to upload the mclk table again.  In practice
we don't currently upload the mclk table again after the initial load.
The only reason you would would be to add new states, e.g., for
arbitrary mclk setting which is not currently supported.

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/gpu/drm/radeon/radeon_pm.c

index 903ab81fbf1b316e2bbbdfb29b8808a555f1574b..2582cc16dcd975eb38848e16b28ebcafca898b10 100644 (file)
@@ -1076,10 +1076,6 @@ force:
        /* update display watermarks based on new power state */
        radeon_bandwidth_update(rdev);
 
-       rdev->pm.dpm.current_active_crtcs = rdev->pm.dpm.new_active_crtcs;
-       rdev->pm.dpm.current_active_crtc_count = rdev->pm.dpm.new_active_crtc_count;
-       rdev->pm.dpm.single_display = single_display;
-
        /* wait for the rings to drain */
        for (i = 0; i < RADEON_NUM_RINGS; i++) {
                struct radeon_ring *ring = &rdev->ring[i];
@@ -1098,6 +1094,10 @@ force:
        /* update displays */
        radeon_dpm_display_configuration_changed(rdev);
 
+       rdev->pm.dpm.current_active_crtcs = rdev->pm.dpm.new_active_crtcs;
+       rdev->pm.dpm.current_active_crtc_count = rdev->pm.dpm.new_active_crtc_count;
+       rdev->pm.dpm.single_display = single_display;
+
        if (rdev->asic->dpm.force_performance_level) {
                if (rdev->pm.dpm.thermal_active) {
                        enum radeon_dpm_forced_level level = rdev->pm.dpm.forced_level;