diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index e48b4ec88c8c..46b9ea4e6103 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |||
| @@ -36,8 +36,6 @@ void amdgpu_gem_object_free(struct drm_gem_object *gobj) | |||
| 36 | struct amdgpu_bo *robj = gem_to_amdgpu_bo(gobj); | 36 | struct amdgpu_bo *robj = gem_to_amdgpu_bo(gobj); |
| 37 | 37 | ||
| 38 | if (robj) { | 38 | if (robj) { |
| 39 | if (robj->gem_base.import_attach) | ||
| 40 | drm_prime_gem_destroy(&robj->gem_base, robj->tbo.sg); | ||
| 41 | amdgpu_mn_unregister(robj); | 39 | amdgpu_mn_unregister(robj); |
| 42 | amdgpu_bo_unref(&robj); | 40 | amdgpu_bo_unref(&robj); |
| 43 | } | 41 | } |
| @@ -45,7 +43,7 @@ void amdgpu_gem_object_free(struct drm_gem_object *gobj) | |||
| 45 | 43 | ||
| 46 | int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size, | 44 | int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size, |
| 47 | int alignment, u32 initial_domain, | 45 | int alignment, u32 initial_domain, |
| 48 | u64 flags, bool kernel, | 46 | u64 flags, enum ttm_bo_type type, |
| 49 | struct reservation_object *resv, | 47 | struct reservation_object *resv, |
| 50 | struct drm_gem_object **obj) | 48 | struct drm_gem_object **obj) |
| 51 | { | 49 | { |
| @@ -59,8 +57,8 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size, | |||
| 59 | } | 57 | } |
| 60 | 58 | ||
| 61 | retry: | 59 | retry: |
| 62 | r = amdgpu_bo_create(adev, size, alignment, kernel, initial_domain, | 60 | r = amdgpu_bo_create(adev, size, alignment, initial_domain, |
| 63 | flags, NULL, resv, 0, &bo); | 61 | flags, type, resv, &bo); |
| 64 | if (r) { | 62 | if (r) { |
| 65 | if (r != -ERESTARTSYS) { | 63 | if (r != -ERESTARTSYS) { |
| 66 | if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) { | 64 | if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) { |
| @@ -523,12 +521,13 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev, | |||
| 523 | goto error; | 521 | goto error; |
| 524 | 522 | ||
| 525 | if (operation == AMDGPU_VA_OP_MAP || | 523 | if (operation == AMDGPU_VA_OP_MAP || |
| 526 | operation == AMDGPU_VA_OP_REPLACE) | 524 | operation == AMDGPU_VA_OP_REPLACE) { |
| 527 | r = amdgpu_vm_bo_update(adev, bo_va, false); | 525 | r = amdgpu_vm_bo_update(adev, bo_va, false); |
| 526 | if (r) | ||
| 527 | goto error; | ||
| 528 | } | ||
| 528 | 529 | ||
| 529 | r = amdgpu_vm_update_directories(adev, vm); | 530 | r = amdgpu_vm_update_directories(adev, vm); |
| 530 | if (r) | ||
| 531 | goto error; | ||
| 532 | 531 | ||
| 533 | error: | 532 | error: |
| 534 | if (r && r != -ERESTARTSYS) | 533 | if (r && r != -ERESTARTSYS) |
| @@ -634,7 +633,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data, | |||
| 634 | if (r) | 633 | if (r) |
| 635 | goto error_backoff; | 634 | goto error_backoff; |
| 636 | 635 | ||
| 637 | va_flags = amdgpu_vm_get_pte_flags(adev, args->flags); | 636 | va_flags = amdgpu_gmc_get_pte_flags(adev, args->flags); |
| 638 | r = amdgpu_vm_bo_map(adev, bo_va, args->va_address, | 637 | r = amdgpu_vm_bo_map(adev, bo_va, args->va_address, |
| 639 | args->offset_in_bo, args->map_size, | 638 | args->offset_in_bo, args->map_size, |
| 640 | va_flags); | 639 | va_flags); |
| @@ -654,7 +653,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data, | |||
| 654 | if (r) | 653 | if (r) |
| 655 | goto error_backoff; | 654 | goto error_backoff; |
| 656 | 655 | ||
| 657 | va_flags = amdgpu_vm_get_pte_flags(adev, args->flags); | 656 | va_flags = amdgpu_gmc_get_pte_flags(adev, args->flags); |
| 658 | r = amdgpu_vm_bo_replace_map(adev, bo_va, args->va_address, | 657 | r = amdgpu_vm_bo_replace_map(adev, bo_va, args->va_address, |
| 659 | args->offset_in_bo, args->map_size, | 658 | args->offset_in_bo, args->map_size, |
| 660 | va_flags); | 659 | va_flags); |
