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

    drm/radeon: always program the MC on startup

to the 3.4-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-always-program-the-mc-on-startup.patch
and it can be found in the queue-3.4 subdirectory.

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


>From 6fab3febf6d949b0a12b1e4e73db38e4a177a79e Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Sun, 4 Aug 2013 12:13:17 -0400
Subject: drm/radeon: always program the MC on startup

From: Alex Deucher <[email protected]>

commit 6fab3febf6d949b0a12b1e4e73db38e4a177a79e upstream.

For r6xx+ asics.  This mirrors the behavior of pre-r6xx
asics.  We need to program the MC even if something
else in startup() fails.  Failure to do so results in
an unusable GPU.

Based on a fix from: Mark Kettenis <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
[wml: Backported to 3.4:
- adjust context
- drop changes to cik.c]
Signed-off-by: Weng Meiling <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/gpu/drm/radeon/evergreen.c |    3 ++-
 drivers/gpu/drm/radeon/ni.c        |    3 ++-
 drivers/gpu/drm/radeon/r600.c      |    3 ++-
 drivers/gpu/drm/radeon/rv770.c     |    3 ++-
 drivers/gpu/drm/radeon/si.c        |    3 ++-
 5 files changed, 10 insertions(+), 5 deletions(-)

--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -3219,6 +3219,8 @@ static int evergreen_startup(struct rade
        /* enable pcie gen2 link */
        evergreen_pcie_gen2_enable(rdev);
 
+       evergreen_mc_program(rdev);
+
        if (ASIC_IS_DCE5(rdev)) {
                if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || 
!rdev->mc_fw) {
                        r = ni_init_microcode(rdev);
@@ -3246,7 +3248,6 @@ static int evergreen_startup(struct rade
        if (r)
                return r;
 
-       evergreen_mc_program(rdev);
        if (rdev->flags & RADEON_IS_AGP) {
                evergreen_agp_enable(rdev);
        } else {
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1552,6 +1552,8 @@ static int cayman_startup(struct radeon_
        /* enable pcie gen2 link */
        evergreen_pcie_gen2_enable(rdev);
 
+       evergreen_mc_program(rdev);
+
        if (rdev->flags & RADEON_IS_IGP) {
                if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
                        r = ni_init_microcode(rdev);
@@ -1580,7 +1582,6 @@ static int cayman_startup(struct radeon_
        if (r)
                return r;
 
-       evergreen_mc_program(rdev);
        r = cayman_pcie_gart_enable(rdev);
        if (r)
                return r;
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2431,6 +2431,8 @@ int r600_startup(struct radeon_device *r
        /* enable pcie gen2 link */
        r600_pcie_gen2_enable(rdev);
 
+       r600_mc_program(rdev);
+
        if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
                r = r600_init_microcode(rdev);
                if (r) {
@@ -2443,7 +2445,6 @@ int r600_startup(struct radeon_device *r
        if (r)
                return r;
 
-       r600_mc_program(rdev);
        if (rdev->flags & RADEON_IS_AGP) {
                r600_agp_enable(rdev);
        } else {
--- a/drivers/gpu/drm/radeon/rv770.c
+++ b/drivers/gpu/drm/radeon/rv770.c
@@ -1058,6 +1058,8 @@ static int rv770_startup(struct radeon_d
        /* enable pcie gen2 link */
        rv770_pcie_gen2_enable(rdev);
 
+       rv770_mc_program(rdev);
+
        if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
                r = r600_init_microcode(rdev);
                if (r) {
@@ -1070,7 +1072,6 @@ static int rv770_startup(struct radeon_d
        if (r)
                return r;
 
-       rv770_mc_program(rdev);
        if (rdev->flags & RADEON_IS_AGP) {
                rv770_agp_enable(rdev);
        } else {
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -3834,6 +3834,8 @@ static int si_startup(struct radeon_devi
        struct radeon_ring *ring;
        int r;
 
+       si_mc_program(rdev);
+
        if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw ||
            !rdev->rlc_fw || !rdev->mc_fw) {
                r = si_init_microcode(rdev);
@@ -3853,7 +3855,6 @@ static int si_startup(struct radeon_devi
        if (r)
                return r;
 
-       si_mc_program(rdev);
        r = si_pcie_gart_enable(rdev);
        if (r)
                return r;


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

queue-3.4/drm-radeon-add-connector-table-for-mac-g4-silver.patch
queue-3.4/drm-radeon-fix-atpx-detection-on-non-vga-gpus.patch
queue-3.4/drm-radeon-cleanup-properly-if-mmio-mapping-fails.patch
queue-3.4/drm-radeon-call-drm_edid_to_eld-when-we-update-the-edid.patch
queue-3.4/drm-radeon-fix-amd-afusion-gpu-setup-aka-sumo-v2.patch
queue-3.4/drm-radeon-dce32-use-fractional-fb-dividers-for-high-clocks.patch
queue-3.4/drm-fix-documentation-for-drm_crtc_set_mode.patch
queue-3.4/drm-radeon-fix-panel-scaling-with-edp-and-lvds-bridges.patch
queue-3.4/drm-radeon-fix-hdmi-mode-enable-on-rs600-rs690-rs740.patch
queue-3.4/drm-radeon-add-connector-table-for-sam440ep-embedded-board.patch
queue-3.4/drm-radeon-fix-typo-in-evergreen_mc_resume.patch
queue-3.4/drm-radeon-always-program-the-mc-on-startup.patch
queue-3.4/drm-radeon-another-card-with-wrong-primary-dac-adj.patch
queue-3.4/drm-radeon-use-frac-fb-div-on-rs780-rs880.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