diff options
author | Christian König <christian.koenig@amd.com> | 2017-03-13 05:13:37 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-03-29 23:54:00 -0400 |
commit | 663e4577a5733fab18d601128f54486d78595bc0 (patch) | |
tree | af0a0b2121dea7755bcb0b1bbde9af53f986db18 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
parent | 4388fc2ab0e83fd6247c48c7e97064cc75511848 (diff) |
drm/amdgpu: separate page table allocation from mapping
This makes it easier to implement a replace operation.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 6daf004955b0..0240f108f90e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |||
@@ -631,8 +631,12 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data, | |||
631 | 631 | ||
632 | switch (args->operation) { | 632 | switch (args->operation) { |
633 | case AMDGPU_VA_OP_MAP: | 633 | case AMDGPU_VA_OP_MAP: |
634 | va_flags = amdgpu_vm_get_pte_flags(adev, args->flags); | 634 | r = amdgpu_vm_alloc_pts(adev, bo_va->vm, args->va_address, |
635 | args->map_size); | ||
636 | if (r) | ||
637 | goto error_backoff; | ||
635 | 638 | ||
639 | va_flags = amdgpu_vm_get_pte_flags(adev, args->flags); | ||
636 | r = amdgpu_vm_bo_map(adev, bo_va, args->va_address, | 640 | r = amdgpu_vm_bo_map(adev, bo_va, args->va_address, |
637 | args->offset_in_bo, args->map_size, | 641 | args->offset_in_bo, args->map_size, |
638 | va_flags); | 642 | va_flags); |