diff options
author | Dave Airlie <airlied@redhat.com> | 2015-09-03 23:06:29 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-09-03 23:06:29 -0400 |
commit | 99495589aa4de7166af254bc497cdbe133fc24bb (patch) | |
tree | d525e957854064f2492976e9beb8a04dddc28143 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
parent | 879a37d00f1882b1e56a66e626af4194d592d257 (diff) | |
parent | bddf8026386927985ef6d0d11c3ba78f70b76bad (diff) |
Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-next
More fixes for radeon and amdgpu for 4.3:
- Send full DP aux address fixes for radeon and amdgpu
- Fix an HDMI display regression for pre-DCE5 parts
- UVD suspend fixes for amdgpu
- Add an rs480 suspend quirk
- Fix bo reserve handling in amdgpu GEM_OP ioctl
- GPU scheduler fixes
- SDMA optimizations
- MEC fix for Fiji
* 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: (21 commits)
drm/amdgpu: set MEC doorbell range for Fiji
drm/amdgpu: implement burst NOP for SDMA
drm/amdgpu: add insert_nop ring func and default implementation
drm/amdgpu: add amdgpu_get_sdma_instance helper function
drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
drm/amdgpu: add burst_nop flag for sdma
drm/amdgpu: add count field for the SDMA NOP packet v2
drm/amdgpu: use PT for VM sync on unmap
drm/amdgpu: make wait_event uninterruptible in push_job
drm/amdgpu: fix amdgpu_bo_unreserve order in GEM_OP IOCTL v2
drm/amdgpu: partially revert "modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple()" v2
Add radeon suspend/resume quirk for HP Compaq dc5750.
drm/amdgpu: re-work sync_resv
drm/amdgpu/atom: Send out the full AUX address
drm/radeon/native: Send out the full AUX address
drm/radeon/atom: Send out the full AUX address
drm/amdgpu: use IB for fill_buffer instead of direct command
drm/amdgpu: stop trying to suspend UVD sessions v2
drm/amdgpu: add scheduler dependency callback v2
drm/amdgpu: let the scheduler work more with jobs v2
...
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 4afc507820c0..4b36e779622f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |||
@@ -615,6 +615,7 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data, | |||
615 | info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT; | 615 | info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT; |
616 | info.domains = robj->initial_domain; | 616 | info.domains = robj->initial_domain; |
617 | info.domain_flags = robj->flags; | 617 | info.domain_flags = robj->flags; |
618 | amdgpu_bo_unreserve(robj); | ||
618 | if (copy_to_user(out, &info, sizeof(info))) | 619 | if (copy_to_user(out, &info, sizeof(info))) |
619 | r = -EFAULT; | 620 | r = -EFAULT; |
620 | break; | 621 | break; |
@@ -622,17 +623,19 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data, | |||
622 | case AMDGPU_GEM_OP_SET_PLACEMENT: | 623 | case AMDGPU_GEM_OP_SET_PLACEMENT: |
623 | if (amdgpu_ttm_tt_has_userptr(robj->tbo.ttm)) { | 624 | if (amdgpu_ttm_tt_has_userptr(robj->tbo.ttm)) { |
624 | r = -EPERM; | 625 | r = -EPERM; |
626 | amdgpu_bo_unreserve(robj); | ||
625 | break; | 627 | break; |
626 | } | 628 | } |
627 | robj->initial_domain = args->value & (AMDGPU_GEM_DOMAIN_VRAM | | 629 | robj->initial_domain = args->value & (AMDGPU_GEM_DOMAIN_VRAM | |
628 | AMDGPU_GEM_DOMAIN_GTT | | 630 | AMDGPU_GEM_DOMAIN_GTT | |
629 | AMDGPU_GEM_DOMAIN_CPU); | 631 | AMDGPU_GEM_DOMAIN_CPU); |
632 | amdgpu_bo_unreserve(robj); | ||
630 | break; | 633 | break; |
631 | default: | 634 | default: |
635 | amdgpu_bo_unreserve(robj); | ||
632 | r = -EINVAL; | 636 | r = -EINVAL; |
633 | } | 637 | } |
634 | 638 | ||
635 | amdgpu_bo_unreserve(robj); | ||
636 | out: | 639 | out: |
637 | drm_gem_object_unreference_unlocked(gobj); | 640 | drm_gem_object_unreference_unlocked(gobj); |
638 | return r; | 641 | return r; |