aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2014-07-29 05:47:21 -0400
committerAlex Deucher <alexander.deucher@amd.com>2014-08-05 08:53:41 -0400
commit810b73d1909298b67db5c7c047ed99b487ff7341 (patch)
tree8f731bfe4833727d2f7b3232ef3c20461418beaa
parent1490434f0da63afc6006411c8829c6a7935a4e7e (diff)
drm/radeon: Use write-combined CPU mappings of IBs on >= CIK
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/radeon_ring.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index 7cfea7e4583f..20b0e4faf7ae 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -201,10 +201,22 @@ int radeon_ib_pool_init(struct radeon_device *rdev)
201 if (rdev->ib_pool_ready) { 201 if (rdev->ib_pool_ready) {
202 return 0; 202 return 0;
203 } 203 }
204 r = radeon_sa_bo_manager_init(rdev, &rdev->ring_tmp_bo, 204
205 RADEON_IB_POOL_SIZE*64*1024, 205 if (rdev->family >= CHIP_BONAIRE) {
206 RADEON_GPU_PAGE_SIZE, 206 r = radeon_sa_bo_manager_init(rdev, &rdev->ring_tmp_bo,
207 RADEON_GEM_DOMAIN_GTT, 0); 207 RADEON_IB_POOL_SIZE*64*1024,
208 RADEON_GPU_PAGE_SIZE,
209 RADEON_GEM_DOMAIN_GTT,
210 RADEON_GEM_GTT_WC);
211 } else {
212 /* Before CIK, it's better to stick to cacheable GTT due
213 * to the command stream checking
214 */
215 r = radeon_sa_bo_manager_init(rdev, &rdev->ring_tmp_bo,
216 RADEON_IB_POOL_SIZE*64*1024,
217 RADEON_GPU_PAGE_SIZE,
218 RADEON_GEM_DOMAIN_GTT, 0);
219 }
208 if (r) { 220 if (r) {
209 return r; 221 return r;
210 } 222 }