aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index f17fb3c63f43..25b390dc8636 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -342,6 +342,9 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
342 list_move(&bo_base->vm_status, &vm->moved); 342 list_move(&bo_base->vm_status, &vm->moved);
343 spin_unlock(&vm->moved_lock); 343 spin_unlock(&vm->moved_lock);
344 } else { 344 } else {
345 r = amdgpu_ttm_alloc_gart(&bo->tbo);
346 if (r)
347 break;
345 list_move(&bo_base->vm_status, &vm->relocated); 348 list_move(&bo_base->vm_status, &vm->relocated);
346 } 349 }
347 } 350 }
@@ -417,6 +420,10 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
417 if (r) 420 if (r)
418 goto error; 421 goto error;
419 422
423 r = amdgpu_ttm_alloc_gart(&bo->tbo);
424 if (r)
425 return r;
426
420 r = amdgpu_job_alloc_with_ib(adev, 64, &job); 427 r = amdgpu_job_alloc_with_ib(adev, 64, &job);
421 if (r) 428 if (r)
422 goto error; 429 goto error;
@@ -482,7 +489,12 @@ static void amdgpu_vm_bo_param(struct amdgpu_device *adev, struct amdgpu_vm *vm,
482 bp->size = amdgpu_vm_bo_size(adev, level); 489 bp->size = amdgpu_vm_bo_size(adev, level);
483 bp->byte_align = AMDGPU_GPU_PAGE_SIZE; 490 bp->byte_align = AMDGPU_GPU_PAGE_SIZE;
484 bp->domain = AMDGPU_GEM_DOMAIN_VRAM; 491 bp->domain = AMDGPU_GEM_DOMAIN_VRAM;
485 bp->flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; 492 if (bp->size <= PAGE_SIZE && adev->asic_type >= CHIP_VEGA10 &&
493 adev->flags & AMD_IS_APU)
494 bp->domain |= AMDGPU_GEM_DOMAIN_GTT;
495 bp->domain = amdgpu_bo_get_preferred_pin_domain(adev, bp->domain);
496 bp->flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS |
497 AMDGPU_GEM_CREATE_CPU_GTT_USWC;
486 if (vm->use_cpu_for_update) 498 if (vm->use_cpu_for_update)
487 bp->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; 499 bp->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
488 else 500 else