diff options
author | Christian König <christian.koenig@amd.com> | 2015-12-18 16:13:12 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-02-10 14:16:47 -0500 |
commit | 1ea863fd736eed8217a0b7bc5d0bd0de6b267b80 (patch) | |
tree | 1f983a945fd5971de31eeabd51af615b4bbfad39 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
parent | 636ce25c30010a8f393f5a1e67d5d4b7b66739e7 (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.c | 14 |
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: |