diff options
author | Christian König <christian.koenig@amd.com> | 2016-08-15 11:00:22 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-10-25 14:38:13 -0400 |
commit | 03f48dd5d2085b978353a804635b6d34e77a5635 (patch) | |
tree | 4f55e06c16167af6227c9a348c7e168c7346a6c8 /drivers/gpu/drm/amd | |
parent | cfa32556e58d8a353666fb007f708a4955c6711c (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.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 6 |
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) { |