summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/radeon/radeon_gem.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2014-07-30 15:49:56 (GMT)
committerAlex Deucher <alexander.deucher@amd.com>2014-08-05 12:53:51 (GMT)
commit0aea5e4aa299c465afafc77883ea2c19475036b1 (patch)
tree43afd9cf7bc0f0bd284f3e0089d4c546b9512fd7 /drivers/gpu/drm/radeon/radeon_gem.c
parentc265f24d5ca3bf2877e857b93b0246098767e6a9 (diff)
downloadlinux-0aea5e4aa299c465afafc77883ea2c19475036b1.tar.xz
drm/radeon: use an intervall tree to manage the VMA v2
Scales much better than scanning the address range linearly. v2: store pfn instead of address Signed-off-by: Christian König <christian.koenig@amd.com> Tested-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_gem.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_gem.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c
index 99e4e0c..bfd7e1b 100644
--- a/drivers/gpu/drm/radeon/radeon_gem.c
+++ b/drivers/gpu/drm/radeon/radeon_gem.c
@@ -496,9 +496,9 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data,
switch (args->operation) {
case RADEON_VA_MAP:
- if (bo_va->soffset) {
+ if (bo_va->it.start) {
args->operation = RADEON_VA_RESULT_VA_EXIST;
- args->offset = bo_va->soffset;
+ args->offset = bo_va->it.start * RADEON_GPU_PAGE_SIZE;
goto out;
}
r = radeon_vm_bo_set_addr(rdev, bo_va, args->offset, args->flags);