aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2015-12-18 16:13:12 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-02-10 14:16:47 -0500
commit1ea863fd736eed8217a0b7bc5d0bd0de6b267b80 (patch)
tree1f983a945fd5971de31eeabd51af615b4bbfad39 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
parent636ce25c30010a8f393f5a1e67d5d4b7b66739e7 (diff)
drm/amdgpu: keep the prefered/allowed domains in the BO
Stop copying that to the bo list entry, it doesn't change anyway. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@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.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
index 7380f782cd14..84e850f81f39 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -252,6 +252,8 @@ int amdgpu_gem_userptr_ioctl(struct drm_device *dev, void *data,
252 goto handle_lockup; 252 goto handle_lockup;
253 253
254 bo = gem_to_amdgpu_bo(gobj); 254 bo = gem_to_amdgpu_bo(gobj);
255 bo->prefered_domains = AMDGPU_GEM_DOMAIN_GTT;
256 bo->allowed_domains = AMDGPU_GEM_DOMAIN_GTT;
255 r = amdgpu_ttm_tt_set_userptr(bo->tbo.ttm, args->addr, args->flags); 257 r = amdgpu_ttm_tt_set_userptr(bo->tbo.ttm, args->addr, args->flags);
256 if (r) 258 if (r)
257 goto release_object; 259 goto release_object;
@@ -628,7 +630,7 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
628 630
629 info.bo_size = robj->gem_base.size; 631 info.bo_size = robj->gem_base.size;
630 info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT; 632 info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
631 info.domains = robj->initial_domain; 633 info.domains = robj->prefered_domains;
632 info.domain_flags = robj->flags; 634 info.domain_flags = robj->flags;
633 amdgpu_bo_unreserve(robj); 635 amdgpu_bo_unreserve(robj);
634 if (copy_to_user(out, &info, sizeof(info))) 636 if (copy_to_user(out, &info, sizeof(info)))
@@ -641,9 +643,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
641 amdgpu_bo_unreserve(robj); 643 amdgpu_bo_unreserve(robj);
642 break; 644 break;
643 } 645 }
644 robj->initial_domain = args->value & (AMDGPU_GEM_DOMAIN_VRAM | 646 robj->prefered_domains = args->value & (AMDGPU_GEM_DOMAIN_VRAM |
645 AMDGPU_GEM_DOMAIN_GTT | 647 AMDGPU_GEM_DOMAIN_GTT |
646 AMDGPU_GEM_DOMAIN_CPU); 648 AMDGPU_GEM_DOMAIN_CPU);
649 robj->allowed_domains = robj->prefered_domains;
650 if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
651 robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
652
647 amdgpu_bo_unreserve(robj); 653 amdgpu_bo_unreserve(robj);
648 break; 654 break;
649 default: 655 default: