This is a note to let you know that I've just added the patch titled

    drm/radeon/atom: powergating fixes for DCE6

to the 3.5-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-radeon-atom-powergating-fixes-for-dce6.patch
and it can be found in the queue-3.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From c205b232a64fed6d26edd7e40985b396de99a27f Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Fri, 24 Aug 2012 18:21:21 -0400
Subject: drm/radeon/atom: powergating fixes for DCE6

From: Alex Deucher <[email protected]>

commit c205b232a64fed6d26edd7e40985b396de99a27f upstream.

Power gating is per crtc pair, but the powergating registers
should be called individually.  The hw handles power up/down
properly.  The pair is powered up if either crtc in the pair
is powered up and the pair is not powered down until both
crtcs in the pair are powered down.  This simplifies
programming and should save additional power as the previous
code never actually power gated the crtc pair.

Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/gpu/drm/radeon/atombios_crtc.c |   22 ++--------------------
 1 file changed, 2 insertions(+), 20 deletions(-)

--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -258,7 +258,6 @@ void atombios_crtc_dpms(struct drm_crtc
                radeon_crtc->enabled = true;
                /* adjust pm to dpms changes BEFORE enabling crtcs */
                radeon_pm_compute_clocks(rdev);
-               /* disable crtc pair power gating before programming */
                if (ASIC_IS_DCE6(rdev) && !radeon_crtc->in_mode_set)
                        atombios_powergate_crtc(crtc, ATOM_DISABLE);
                atombios_enable_crtc(crtc, ATOM_ENABLE);
@@ -278,25 +277,8 @@ void atombios_crtc_dpms(struct drm_crtc
                        atombios_enable_crtc_memreq(crtc, ATOM_DISABLE);
                atombios_enable_crtc(crtc, ATOM_DISABLE);
                radeon_crtc->enabled = false;
-               /* power gating is per-pair */
-               if (ASIC_IS_DCE6(rdev) && !radeon_crtc->in_mode_set) {
-                       struct drm_crtc *other_crtc;
-                       struct radeon_crtc *other_radeon_crtc;
-                       list_for_each_entry(other_crtc, 
&rdev->ddev->mode_config.crtc_list, head) {
-                               other_radeon_crtc = to_radeon_crtc(other_crtc);
-                               if (((radeon_crtc->crtc_id == 0) && 
(other_radeon_crtc->crtc_id == 1)) ||
-                                   ((radeon_crtc->crtc_id == 1) && 
(other_radeon_crtc->crtc_id == 0)) ||
-                                   ((radeon_crtc->crtc_id == 2) && 
(other_radeon_crtc->crtc_id == 3)) ||
-                                   ((radeon_crtc->crtc_id == 3) && 
(other_radeon_crtc->crtc_id == 2)) ||
-                                   ((radeon_crtc->crtc_id == 4) && 
(other_radeon_crtc->crtc_id == 5)) ||
-                                   ((radeon_crtc->crtc_id == 5) && 
(other_radeon_crtc->crtc_id == 4))) {
-                                       /* if both crtcs in the pair are off, 
enable power gating */
-                                       if (other_radeon_crtc->enabled == false)
-                                               atombios_powergate_crtc(crtc, 
ATOM_ENABLE);
-                                       break;
-                               }
-                       }
-               }
+               if (ASIC_IS_DCE6(rdev) && !radeon_crtc->in_mode_set)
+                       atombios_powergate_crtc(crtc, ATOM_ENABLE);
                /* adjust pm to dpms changes AFTER disabling crtcs */
                radeon_pm_compute_clocks(rdev);
                break;


Patches currently in stable-queue which might be from [email protected] 
are

queue-3.5/drm-radeon-implement-acpi-vfct-vbios-fetch-v3.patch
queue-3.5/drm-radeon-atom-rework-dig-modesetting-on-dce3.patch
queue-3.5/drm-radeon-split-atrm-support-out-from-the-atpx-handler-v3.patch
queue-3.5/drm-radeon-convert-radeon-vfct-code-to-use-acpi_get_table_with_size.patch
queue-3.5/drm-radeon-avoid-turning-off-spread-spectrum-for-used-pll.patch
queue-3.5/drm-radeon-ss-use-num_crtc-rather-than-hardcoded-6.patch
queue-3.5/drm-radeon-fence-virtual-address-and-free-it-once-idle-v4.patch
queue-3.5/drm-radeon-kms-extend-the-fujitsu-d3003-s2-board-connector-quirk-to-cover-later-silicon-stepping.patch
queue-3.5/drm-radeon-atom-powergating-fixes-for-dce6.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to