Acked-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com> Andrey On 08/23/2018 08:33 AM, Christian König wrote: > Should work on Vega10 as well, but with an obvious performance hit. > > Older APUs can be enabled as well, but will probably be more work. > > v2: fix error checking > > Signed-off-by: Christian König <christian.koenig at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index 928fdae0dab4..9ec56f59b03a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -308,6 +308,9 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm, > list_move(&bo_base->vm_status, &vm->moved); > spin_unlock(&vm->moved_lock); > } else { > + r = amdgpu_ttm_alloc_gart(&bo->tbo); > + if (r) > + break; > list_move(&bo_base->vm_status, &vm->relocated); > } > } > @@ -396,6 +399,10 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev, > if (r) > goto error; > > + r = amdgpu_ttm_alloc_gart(&bo->tbo); > + if (r) > + return r; > + > r = amdgpu_job_alloc_with_ib(adev, 64, &job); > if (r) > goto error; > @@ -461,7 +468,11 @@ static void amdgpu_vm_bo_param(struct amdgpu_device *adev, struct amdgpu_vm *vm, > bp->size = amdgpu_vm_bo_size(adev, level); > bp->byte_align = AMDGPU_GPU_PAGE_SIZE; > bp->domain = AMDGPU_GEM_DOMAIN_VRAM; > - bp->flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; > + if (bp->size <= PAGE_SIZE && adev->asic_type == CHIP_RAVEN) > + bp->domain |= AMDGPU_GEM_DOMAIN_GTT; > + bp->domain = amdgpu_bo_get_preferred_pin_domain(adev, bp->domain); > + bp->flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS | > + AMDGPU_GEM_CREATE_CPU_GTT_USWC; > if (vm->use_cpu_for_update) > bp->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; > else