diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2014-03-12 16:20:44 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-03-12 16:20:44 -0400 |
commit | b2b3d8d952e4f8d6ac2ce80be96b937f29f6e42e (patch) | |
tree | 5e46d90d0a5181d3c1c92413299ee1b7b5627b4a /drivers/gpu/drm/radeon/cik.c | |
parent | 07ae78c9798b79bad3d3adf983c94ba23fde54d4 (diff) |
drm/radeon/cik: properly set compute ring status on disable
When we disable the rings, set the status properly. If
not other code pathes may try and use the rings which are
not functional at this point.
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 | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index e22be8458d92..bbb17841a9e5 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c @@ -4134,8 +4134,11 @@ static void cik_cp_compute_enable(struct radeon_device *rdev, bool enable) { if (enable) WREG32(CP_MEC_CNTL, 0); - else + else { WREG32(CP_MEC_CNTL, (MEC_ME1_HALT | MEC_ME2_HALT)); + rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = false; + rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX].ready = false; + } udelay(50); } |