diff options
author | Christian König <christian.koenig@amd.com> | 2015-06-29 11:12:20 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-06-29 15:52:50 -0400 |
commit | fc220f6580be80c36dfba9964b2fd71ceb1d3d97 (patch) | |
tree | 3fa7493a0e38ec4bac89abbf30c75706f3883026 | |
parent | 2b48d323b26c37555df3447e11ab9e962eccdc26 (diff) |
drm/amdgpu: add flag to delay VM updates
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 6 | ||||
-rw-r--r-- | include/uapi/drm/amdgpu_drm.h | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index c3ea3635e1fc..975edb1000a2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |||
@@ -525,8 +525,8 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data, | |||
525 | return -EINVAL; | 525 | return -EINVAL; |
526 | } | 526 | } |
527 | 527 | ||
528 | invalid_flags = ~(AMDGPU_VM_PAGE_READABLE | AMDGPU_VM_PAGE_WRITEABLE | | 528 | invalid_flags = ~(AMDGPU_VM_DELAY_UPDATE | AMDGPU_VM_PAGE_READABLE | |
529 | AMDGPU_VM_PAGE_EXECUTABLE); | 529 | AMDGPU_VM_PAGE_WRITEABLE | AMDGPU_VM_PAGE_EXECUTABLE); |
530 | if ((args->flags & invalid_flags)) { | 530 | if ((args->flags & invalid_flags)) { |
531 | dev_err(&dev->pdev->dev, "invalid flags 0x%08X vs 0x%08X\n", | 531 | dev_err(&dev->pdev->dev, "invalid flags 0x%08X vs 0x%08X\n", |
532 | args->flags, invalid_flags); | 532 | args->flags, invalid_flags); |
@@ -579,7 +579,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data, | |||
579 | break; | 579 | break; |
580 | } | 580 | } |
581 | 581 | ||
582 | if (!r) | 582 | if (!r && !(args->flags & AMDGPU_VM_DELAY_UPDATE)) |
583 | amdgpu_gem_va_update_vm(adev, bo_va); | 583 | amdgpu_gem_va_update_vm(adev, bo_va); |
584 | 584 | ||
585 | drm_gem_object_unreference_unlocked(gobj); | 585 | drm_gem_object_unreference_unlocked(gobj); |
diff --git a/include/uapi/drm/amdgpu_drm.h b/include/uapi/drm/amdgpu_drm.h index 8edf10420361..b6fce900a833 100644 --- a/include/uapi/drm/amdgpu_drm.h +++ b/include/uapi/drm/amdgpu_drm.h | |||
@@ -313,6 +313,9 @@ struct drm_amdgpu_gem_op { | |||
313 | #define AMDGPU_VA_OP_MAP 1 | 313 | #define AMDGPU_VA_OP_MAP 1 |
314 | #define AMDGPU_VA_OP_UNMAP 2 | 314 | #define AMDGPU_VA_OP_UNMAP 2 |
315 | 315 | ||
316 | /* Delay the page table update till the next CS */ | ||
317 | #define AMDGPU_VM_DELAY_UPDATE (1 << 0) | ||
318 | |||
316 | /* Mapping flags */ | 319 | /* Mapping flags */ |
317 | /* readable mapping */ | 320 | /* readable mapping */ |
318 | #define AMDGPU_VM_PAGE_READABLE (1 << 1) | 321 | #define AMDGPU_VM_PAGE_READABLE (1 << 1) |