aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-08-15 11:00:22 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-10-25 14:38:13 -0400
commit03f48dd5d2085b978353a804635b6d34e77a5635 (patch)
tree4f55e06c16167af6227c9a348c7e168c7346a6c8 /drivers/gpu/drm/amd
parentcfa32556e58d8a353666fb007f708a4955c6711c (diff)
drm/amdgpu: add AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS flag v3
Add a flag noting that a BO must be created using linear VRAM and set this flag on all in kernel users where appropriate. Hopefully I haven't missed anything. v2: add it in a few more places, fix CPU mapping. v3: rename to VRAM_CONTIGUOUS, fix typo in CS code. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net> Tested-by: Mike Lothian <mike@fireburn.co.uk> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c9
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_object.c12
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c9
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c6
12 files changed, 51 insertions, 18 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
index 7a8bfa34682f..a61f4186a7dd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
@@ -146,7 +146,8 @@ static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
146 switch(type) { 146 switch(type) {
147 case CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB: 147 case CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB:
148 case CGS_GPU_MEM_TYPE__VISIBLE_FB: 148 case CGS_GPU_MEM_TYPE__VISIBLE_FB:
149 flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; 149 flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
150 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
150 domain = AMDGPU_GEM_DOMAIN_VRAM; 151 domain = AMDGPU_GEM_DOMAIN_VRAM;
151 if (max_offset > adev->mc.real_vram_size) 152 if (max_offset > adev->mc.real_vram_size)
152 return -EINVAL; 153 return -EINVAL;
@@ -157,7 +158,8 @@ static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
157 break; 158 break;
158 case CGS_GPU_MEM_TYPE__INVISIBLE_CONTIG_FB: 159 case CGS_GPU_MEM_TYPE__INVISIBLE_CONTIG_FB:
159 case CGS_GPU_MEM_TYPE__INVISIBLE_FB: 160 case CGS_GPU_MEM_TYPE__INVISIBLE_FB:
160 flags = AMDGPU_GEM_CREATE_NO_CPU_ACCESS; 161 flags = AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
162 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
161 domain = AMDGPU_GEM_DOMAIN_VRAM; 163 domain = AMDGPU_GEM_DOMAIN_VRAM;
162 if (adev->mc.visible_vram_size < adev->mc.real_vram_size) { 164 if (adev->mc.visible_vram_size < adev->mc.real_vram_size) {
163 place.fpfn = 165 place.fpfn =
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index b0f6e6957536..187c3662b72c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -1195,6 +1195,15 @@ int amdgpu_cs_sysvm_access_required(struct amdgpu_cs_parser *parser)
1195 r = amdgpu_ttm_bind(&bo->tbo, &bo->tbo.mem); 1195 r = amdgpu_ttm_bind(&bo->tbo, &bo->tbo.mem);
1196 if (unlikely(r)) 1196 if (unlikely(r))
1197 return r; 1197 return r;
1198
1199 if (bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)
1200 continue;
1201
1202 bo->flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
1203 amdgpu_ttm_placement_from_domain(bo, bo->allowed_domains);
1204 r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false);
1205 if (unlikely(r))
1206 return r;
1198 } 1207 }
1199 1208
1200 return 0; 1209 return 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 22d331947aca..246bbd1ab5ec 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -264,7 +264,8 @@ static int amdgpu_vram_scratch_init(struct amdgpu_device *adev)
264 if (adev->vram_scratch.robj == NULL) { 264 if (adev->vram_scratch.robj == NULL) {
265 r = amdgpu_bo_create(adev, AMDGPU_GPU_PAGE_SIZE, 265 r = amdgpu_bo_create(adev, AMDGPU_GPU_PAGE_SIZE,
266 PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM, 266 PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM,
267 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 267 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
268 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
268 NULL, NULL, &adev->vram_scratch.robj); 269 NULL, NULL, &adev->vram_scratch.robj);
269 if (r) { 270 if (r) {
270 return r; 271 return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
index 8d01aa24d68a..38bdc2d300a3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -152,7 +152,8 @@ static int amdgpufb_create_pinned_object(struct amdgpu_fbdev *rfbdev,
152 aligned_size = ALIGN(size, PAGE_SIZE); 152 aligned_size = ALIGN(size, PAGE_SIZE);
153 ret = amdgpu_gem_object_create(adev, aligned_size, 0, 153 ret = amdgpu_gem_object_create(adev, aligned_size, 0,
154 AMDGPU_GEM_DOMAIN_VRAM, 154 AMDGPU_GEM_DOMAIN_VRAM,
155 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 155 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
156 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
156 true, &gobj); 157 true, &gobj);
157 if (ret) { 158 if (ret) {
158 printk(KERN_ERR "failed to allocate framebuffer (%d)\n", 159 printk(KERN_ERR "failed to allocate framebuffer (%d)\n",
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
index 21a1242fc13b..964d2a946ed5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
@@ -126,7 +126,8 @@ int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev)
126 if (adev->gart.robj == NULL) { 126 if (adev->gart.robj == NULL) {
127 r = amdgpu_bo_create(adev, adev->gart.table_size, 127 r = amdgpu_bo_create(adev, adev->gart.table_size,
128 PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM, 128 PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM,
129 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 129 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
130 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
130 NULL, NULL, &adev->gart.robj); 131 NULL, NULL, &adev->gart.robj);
131 if (r) { 132 if (r) {
132 return r; 133 return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index aa074fac0c7f..ba41807eb917 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -245,7 +245,8 @@ int amdgpu_bo_create_kernel(struct amdgpu_device *adev,
245 int r; 245 int r;
246 246
247 r = amdgpu_bo_create(adev, size, align, true, domain, 247 r = amdgpu_bo_create(adev, size, align, true, domain,
248 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 248 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
249 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
249 NULL, NULL, bo_ptr); 250 NULL, NULL, bo_ptr);
250 if (r) { 251 if (r) {
251 dev_err(adev->dev, "(%d) failed to allocate kernel bo\n", r); 252 dev_err(adev->dev, "(%d) failed to allocate kernel bo\n", r);
@@ -643,6 +644,8 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,
643 644
644 return 0; 645 return 0;
645 } 646 }
647
648 bo->flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
646 amdgpu_ttm_placement_from_domain(bo, domain); 649 amdgpu_ttm_placement_from_domain(bo, domain);
647 for (i = 0; i < bo->placement.num_placement; i++) { 650 for (i = 0; i < bo->placement.num_placement; i++) {
648 /* force to pin into visible video ram */ 651 /* force to pin into visible video ram */
@@ -885,7 +888,9 @@ int amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
885 888
886 size = bo->mem.num_pages << PAGE_SHIFT; 889 size = bo->mem.num_pages << PAGE_SHIFT;
887 offset = bo->mem.start << PAGE_SHIFT; 890 offset = bo->mem.start << PAGE_SHIFT;
888 if ((offset + size) <= adev->mc.visible_vram_size) 891 /* TODO: figure out how to map scattered VRAM to the CPU */
892 if ((offset + size) <= adev->mc.visible_vram_size &&
893 (abo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS))
889 return 0; 894 return 0;
890 895
891 /* Can't move a pinned BO to visible VRAM */ 896 /* Can't move a pinned BO to visible VRAM */
@@ -893,6 +898,7 @@ int amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
893 return -EINVAL; 898 return -EINVAL;
894 899
895 /* hurrah the memory is not visible ! */ 900 /* hurrah the memory is not visible ! */
901 abo->flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
896 amdgpu_ttm_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_VRAM); 902 amdgpu_ttm_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_VRAM);
897 lpfn = adev->mc.visible_vram_size >> PAGE_SHIFT; 903 lpfn = adev->mc.visible_vram_size >> PAGE_SHIFT;
898 for (i = 0; i < abo->placement.num_placement; i++) { 904 for (i = 0; i < abo->placement.num_placement; i++) {
@@ -954,6 +960,8 @@ u64 amdgpu_bo_gpu_offset(struct amdgpu_bo *bo)
954 WARN_ON_ONCE(!ww_mutex_is_locked(&bo->tbo.resv->lock) && 960 WARN_ON_ONCE(!ww_mutex_is_locked(&bo->tbo.resv->lock) &&
955 !bo->pin_count); 961 !bo->pin_count);
956 WARN_ON_ONCE(bo->tbo.mem.start == AMDGPU_BO_INVALID_OFFSET); 962 WARN_ON_ONCE(bo->tbo.mem.start == AMDGPU_BO_INVALID_OFFSET);
963 WARN_ON_ONCE(bo->tbo.mem.mem_type == TTM_PL_VRAM &&
964 !(bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS));
957 965
958 return bo->tbo.offset; 966 return bo->tbo.offset;
959} 967}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index dcaf691f56b5..a06cf9988912 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1119,7 +1119,8 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
1119 1119
1120 r = amdgpu_bo_create(adev, 256 * 1024, PAGE_SIZE, true, 1120 r = amdgpu_bo_create(adev, 256 * 1024, PAGE_SIZE, true,
1121 AMDGPU_GEM_DOMAIN_VRAM, 1121 AMDGPU_GEM_DOMAIN_VRAM,
1122 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 1122 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
1123 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
1123 NULL, NULL, &adev->stollen_vga_memory); 1124 NULL, NULL, &adev->stollen_vga_memory);
1124 if (r) { 1125 if (r) {
1125 return r; 1126 return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
index e3281cacc586..4cf3ca755810 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
@@ -1002,7 +1002,8 @@ int amdgpu_uvd_get_create_msg(struct amdgpu_ring *ring, uint32_t handle,
1002 1002
1003 r = amdgpu_bo_create(adev, 1024, PAGE_SIZE, true, 1003 r = amdgpu_bo_create(adev, 1024, PAGE_SIZE, true,
1004 AMDGPU_GEM_DOMAIN_VRAM, 1004 AMDGPU_GEM_DOMAIN_VRAM,
1005 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 1005 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
1006 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
1006 NULL, NULL, &bo); 1007 NULL, NULL, &bo);
1007 if (r) 1008 if (r)
1008 return r; 1009 return r;
@@ -1051,7 +1052,8 @@ int amdgpu_uvd_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle,
1051 1052
1052 r = amdgpu_bo_create(adev, 1024, PAGE_SIZE, true, 1053 r = amdgpu_bo_create(adev, 1024, PAGE_SIZE, true,
1053 AMDGPU_GEM_DOMAIN_VRAM, 1054 AMDGPU_GEM_DOMAIN_VRAM,
1054 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 1055 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
1056 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
1055 NULL, NULL, &bo); 1057 NULL, NULL, &bo);
1056 if (r) 1058 if (r)
1057 return r; 1059 return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
index 7fe8fd884f06..9a534e2757cd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
@@ -157,7 +157,8 @@ int amdgpu_vce_sw_init(struct amdgpu_device *adev, unsigned long size)
157 157
158 r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, 158 r = amdgpu_bo_create(adev, size, PAGE_SIZE, true,
159 AMDGPU_GEM_DOMAIN_VRAM, 159 AMDGPU_GEM_DOMAIN_VRAM,
160 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 160 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
161 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
161 NULL, NULL, &adev->vce.vcpu_bo); 162 NULL, NULL, &adev->vce.vcpu_bo);
162 if (r) { 163 if (r) {
163 dev_err(adev->dev, "(%d) failed to allocate VCE bo\n", r); 164 dev_err(adev->dev, "(%d) failed to allocate VCE bo\n", r);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 06f24322e7c3..7b9e94f235ab 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1416,7 +1416,8 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
1416 AMDGPU_GPU_PAGE_SIZE, true, 1416 AMDGPU_GPU_PAGE_SIZE, true,
1417 AMDGPU_GEM_DOMAIN_VRAM, 1417 AMDGPU_GEM_DOMAIN_VRAM,
1418 AMDGPU_GEM_CREATE_NO_CPU_ACCESS | 1418 AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
1419 AMDGPU_GEM_CREATE_SHADOW, 1419 AMDGPU_GEM_CREATE_SHADOW |
1420 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
1420 NULL, resv, &pt); 1421 NULL, resv, &pt);
1421 if (r) 1422 if (r)
1422 goto error_free; 1423 goto error_free;
@@ -1626,7 +1627,8 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm)
1626 r = amdgpu_bo_create(adev, pd_size, align, true, 1627 r = amdgpu_bo_create(adev, pd_size, align, true,
1627 AMDGPU_GEM_DOMAIN_VRAM, 1628 AMDGPU_GEM_DOMAIN_VRAM,
1628 AMDGPU_GEM_CREATE_NO_CPU_ACCESS | 1629 AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
1629 AMDGPU_GEM_CREATE_SHADOW, 1630 AMDGPU_GEM_CREATE_SHADOW |
1631 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
1630 NULL, NULL, &vm->page_directory); 1632 NULL, NULL, &vm->page_directory);
1631 if (r) 1633 if (r)
1632 goto error_free_sched_entity; 1634 goto error_free_sched_entity;
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index 71116da9e782..b2cf1290c1cf 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -3391,7 +3391,8 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
3391 if (adev->gfx.rlc.save_restore_obj == NULL) { 3391 if (adev->gfx.rlc.save_restore_obj == NULL) {
3392 r = amdgpu_bo_create(adev, dws * 4, PAGE_SIZE, true, 3392 r = amdgpu_bo_create(adev, dws * 4, PAGE_SIZE, true,
3393 AMDGPU_GEM_DOMAIN_VRAM, 3393 AMDGPU_GEM_DOMAIN_VRAM,
3394 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 3394 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
3395 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
3395 NULL, NULL, 3396 NULL, NULL,
3396 &adev->gfx.rlc.save_restore_obj); 3397 &adev->gfx.rlc.save_restore_obj);
3397 if (r) { 3398 if (r) {
@@ -3435,7 +3436,8 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
3435 if (adev->gfx.rlc.clear_state_obj == NULL) { 3436 if (adev->gfx.rlc.clear_state_obj == NULL) {
3436 r = amdgpu_bo_create(adev, dws * 4, PAGE_SIZE, true, 3437 r = amdgpu_bo_create(adev, dws * 4, PAGE_SIZE, true,
3437 AMDGPU_GEM_DOMAIN_VRAM, 3438 AMDGPU_GEM_DOMAIN_VRAM,
3438 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 3439 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
3440 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
3439 NULL, NULL, 3441 NULL, NULL,
3440 &adev->gfx.rlc.clear_state_obj); 3442 &adev->gfx.rlc.clear_state_obj);
3441 if (r) { 3443 if (r) {
@@ -3475,7 +3477,8 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
3475 if (adev->gfx.rlc.cp_table_obj == NULL) { 3477 if (adev->gfx.rlc.cp_table_obj == NULL) {
3476 r = amdgpu_bo_create(adev, adev->gfx.rlc.cp_table_size, PAGE_SIZE, true, 3478 r = amdgpu_bo_create(adev, adev->gfx.rlc.cp_table_size, PAGE_SIZE, true,
3477 AMDGPU_GEM_DOMAIN_VRAM, 3479 AMDGPU_GEM_DOMAIN_VRAM,
3478 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 3480 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
3481 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
3479 NULL, NULL, 3482 NULL, NULL,
3480 &adev->gfx.rlc.cp_table_obj); 3483 &adev->gfx.rlc.cp_table_obj);
3481 if (r) { 3484 if (r) {
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index ee6a48a09214..bd4d041717bf 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -1273,7 +1273,8 @@ static int gfx_v8_0_rlc_init(struct amdgpu_device *adev)
1273 if (adev->gfx.rlc.clear_state_obj == NULL) { 1273 if (adev->gfx.rlc.clear_state_obj == NULL) {
1274 r = amdgpu_bo_create(adev, dws * 4, PAGE_SIZE, true, 1274 r = amdgpu_bo_create(adev, dws * 4, PAGE_SIZE, true,
1275 AMDGPU_GEM_DOMAIN_VRAM, 1275 AMDGPU_GEM_DOMAIN_VRAM,
1276 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 1276 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
1277 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
1277 NULL, NULL, 1278 NULL, NULL,
1278 &adev->gfx.rlc.clear_state_obj); 1279 &adev->gfx.rlc.clear_state_obj);
1279 if (r) { 1280 if (r) {
@@ -1315,7 +1316,8 @@ static int gfx_v8_0_rlc_init(struct amdgpu_device *adev)
1315 if (adev->gfx.rlc.cp_table_obj == NULL) { 1316 if (adev->gfx.rlc.cp_table_obj == NULL) {
1316 r = amdgpu_bo_create(adev, adev->gfx.rlc.cp_table_size, PAGE_SIZE, true, 1317 r = amdgpu_bo_create(adev, adev->gfx.rlc.cp_table_size, PAGE_SIZE, true,
1317 AMDGPU_GEM_DOMAIN_VRAM, 1318 AMDGPU_GEM_DOMAIN_VRAM,
1318 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, 1319 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
1320 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
1319 NULL, NULL, 1321 NULL, NULL,
1320 &adev->gfx.rlc.cp_table_obj); 1322 &adev->gfx.rlc.cp_table_obj);
1321 if (r) { 1323 if (r) {