diff options
author | Dave Airlie <airlied@redhat.com> | 2014-12-05 11:08:31 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-12-05 11:08:31 +1000 |
commit | d58e0d903477f5a158d7d4901eb6f96f8f4b6289 (patch) | |
tree | 4f474568d94c74382b5a6fb5bcbed426e6b79cda /drivers/gpu/drm/ttm/ttm_execbuf_util.c | |
parent | Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next (diff) | |
parent | drm/radeon: enable smc fan control on CI (diff) | |
download | linux-dev-d58e0d903477f5a158d7d4901eb6f96f8f4b6289.tar.xz linux-dev-d58e0d903477f5a158d7d4901eb6f96f8f4b6289.zip |
Merge branch 'drm-next-3.19-wip' of git://people.freedesktop.org/~agd5f/linux into drm-next
- More cursor and hotspot handling fixes
- Fix some typos in the new smc fan control code and enable on CI
- VM and CS cleanups
* 'drm-next-3.19-wip' of git://people.freedesktop.org/~agd5f/linux:
drm/radeon: enable smc fan control on CI
drm/radeon: use pointers instead of indexes for CS chunks
drm/radeon: remove duplicates check
drm/ttm: optionally move duplicates to a separate list
drm/radeon: check the right ring in radeon_evict_flags()
drm/radeon: fix copy paste typos in fan control for si/ci
drm/radeon: Hide cursor on CRTCs used by fbdev (v2)
drm/radeon: add spinlock for BO_VA status protection (v2)
drm/radeon: fence PT updates as shared
drm/radeon: rename radeon_cs_reloc to radeon_bo_list
drm/radeon: drop the handle from radeon_cs_reloc
drm/radeon drop gobj from radeon_cs_reloc
drm/radeon: fix typo in new fan control registers for SI/CI
drm/radeon: sync all BOs involved in a CS
drm/radeon: Move hotspot handling out of radeon_set_cursor
drm/radeon: Re-show the cursor after a modeset
Diffstat (limited to 'drivers/gpu/drm/ttm/ttm_execbuf_util.c')
-rw-r--r-- | drivers/gpu/drm/ttm/ttm_execbuf_util.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_execbuf_util.c b/drivers/gpu/drm/ttm/ttm_execbuf_util.c index 8ce508e76208..3820ae97a030 100644 --- a/drivers/gpu/drm/ttm/ttm_execbuf_util.c +++ b/drivers/gpu/drm/ttm/ttm_execbuf_util.c @@ -93,7 +93,8 @@ EXPORT_SYMBOL(ttm_eu_backoff_reservation); */ int ttm_eu_reserve_buffers(struct ww_acquire_ctx *ticket, - struct list_head *list, bool intr) + struct list_head *list, bool intr, + struct list_head *dups) { struct ttm_bo_global *glob; struct ttm_validate_buffer *entry; @@ -117,6 +118,13 @@ int ttm_eu_reserve_buffers(struct ww_acquire_ctx *ticket, __ttm_bo_unreserve(bo); ret = -EBUSY; + + } else if (ret == -EALREADY && dups) { + struct ttm_validate_buffer *safe = entry; + entry = list_prev_entry(entry, head); + list_del(&safe->head); + list_add(&safe->head, dups); + continue; } if (!ret) { |