drm/ttm, drm/vmwgfx: move cpu_writers handling into vmwgfx
This feature is only used by vmwgfx and superfluous for everybody else. Signed-off-by: Christian König <christian.koenig@amd.com> Co-developed-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Tested-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/333650/
This commit is contained in:
@@ -153,7 +153,6 @@ static void ttm_bo_release_list(struct kref *list_kref)
|
||||
|
||||
BUG_ON(kref_read(&bo->list_kref));
|
||||
BUG_ON(kref_read(&bo->kref));
|
||||
BUG_ON(atomic_read(&bo->cpu_writers));
|
||||
BUG_ON(bo->mem.mm_node != NULL);
|
||||
BUG_ON(!list_empty(&bo->lru));
|
||||
BUG_ON(!list_empty(&bo->ddestroy));
|
||||
@@ -1315,7 +1314,6 @@ int ttm_bo_init_reserved(struct ttm_bo_device *bdev,
|
||||
|
||||
kref_init(&bo->kref);
|
||||
kref_init(&bo->list_kref);
|
||||
atomic_set(&bo->cpu_writers, 0);
|
||||
INIT_LIST_HEAD(&bo->lru);
|
||||
INIT_LIST_HEAD(&bo->ddestroy);
|
||||
INIT_LIST_HEAD(&bo->swap);
|
||||
@@ -1827,31 +1825,6 @@ int ttm_bo_wait(struct ttm_buffer_object *bo,
|
||||
}
|
||||
EXPORT_SYMBOL(ttm_bo_wait);
|
||||
|
||||
int ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
/*
|
||||
* Using ttm_bo_reserve makes sure the lru lists are updated.
|
||||
*/
|
||||
|
||||
ret = ttm_bo_reserve(bo, true, no_wait, NULL);
|
||||
if (unlikely(ret != 0))
|
||||
return ret;
|
||||
ret = ttm_bo_wait(bo, true, no_wait);
|
||||
if (likely(ret == 0))
|
||||
atomic_inc(&bo->cpu_writers);
|
||||
ttm_bo_unreserve(bo);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(ttm_bo_synccpu_write_grab);
|
||||
|
||||
void ttm_bo_synccpu_write_release(struct ttm_buffer_object *bo)
|
||||
{
|
||||
atomic_dec(&bo->cpu_writers);
|
||||
}
|
||||
EXPORT_SYMBOL(ttm_bo_synccpu_write_release);
|
||||
|
||||
/**
|
||||
* A buffer object shrink method that tries to swap out the first
|
||||
* buffer object on the bo_global::swap_lru list.
|
||||
|
@@ -511,7 +511,6 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
|
||||
mutex_init(&fbo->base.wu_mutex);
|
||||
fbo->base.moving = NULL;
|
||||
drm_vma_node_reset(&fbo->base.base.vma_node);
|
||||
atomic_set(&fbo->base.cpu_writers, 0);
|
||||
|
||||
kref_init(&fbo->base.list_kref);
|
||||
kref_init(&fbo->base.kref);
|
||||
|
@@ -113,12 +113,7 @@ int ttm_eu_reserve_buffers(struct ww_acquire_ctx *ticket,
|
||||
struct ttm_buffer_object *bo = entry->bo;
|
||||
|
||||
ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
|
||||
if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
|
||||
dma_resv_unlock(bo->base.resv);
|
||||
|
||||
ret = -EBUSY;
|
||||
|
||||
} else if (ret == -EALREADY && dups) {
|
||||
if (ret == -EALREADY && dups) {
|
||||
struct ttm_validate_buffer *safe = entry;
|
||||
entry = list_prev_entry(entry, head);
|
||||
list_del(&safe->head);
|
||||
|
Reference in New Issue
Block a user