diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2013-08-04 12:13:17 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-08-07 17:37:14 -0400 |
commit | 6fab3febf6d949b0a12b1e4e73db38e4a177a79e (patch) | |
tree | 4f99c7e77c3112dfd668763048f54aac6ed479d0 /drivers/gpu/drm/radeon/cik.c | |
parent | 1518dd8efd47918bb269f1470030592875953f6c (diff) |
drm/radeon: always program the MC on startup
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 <kettenis@openbsd.org>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/gpu/drm/radeon/cik.c')
-rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index 524db70aaf6e..5b587876c7f5 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c | |||
@@ -5954,6 +5954,8 @@ static int cik_startup(struct radeon_device *rdev) | |||
5954 | struct radeon_ring *ring; | 5954 | struct radeon_ring *ring; |
5955 | int r; | 5955 | int r; |
5956 | 5956 | ||
5957 | cik_mc_program(rdev); | ||
5958 | |||
5957 | if (rdev->flags & RADEON_IS_IGP) { | 5959 | if (rdev->flags & RADEON_IS_IGP) { |
5958 | if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || | 5960 | if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || |
5959 | !rdev->mec_fw || !rdev->sdma_fw || !rdev->rlc_fw) { | 5961 | !rdev->mec_fw || !rdev->sdma_fw || !rdev->rlc_fw) { |
@@ -5985,7 +5987,6 @@ static int cik_startup(struct radeon_device *rdev) | |||
5985 | if (r) | 5987 | if (r) |
5986 | return r; | 5988 | return r; |
5987 | 5989 | ||
5988 | cik_mc_program(rdev); | ||
5989 | r = cik_pcie_gart_enable(rdev); | 5990 | r = cik_pcie_gart_enable(rdev); |
5990 | if (r) | 5991 | if (r) |
5991 | return r; | 5992 | return r; |