drm/ttm: allow fence to be added as shared
This patch adds a new flag to the ttm_validate_buffer list to add the fence as shared to the reservation object. Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:

committed by
Alex Deucher

parent
c4d922b145
commit
ae9c0af2c0
@@ -346,6 +346,7 @@ static int vmw_bo_to_validate_list(struct vmw_sw_context *sw_context,
|
||||
++sw_context->cur_val_buf;
|
||||
val_buf = &vval_buf->base;
|
||||
val_buf->bo = ttm_bo_reference(bo);
|
||||
val_buf->shared = false;
|
||||
list_add_tail(&val_buf->head, &sw_context->validate_nodes);
|
||||
vval_buf->validate_as_mob = validate_as_mob;
|
||||
}
|
||||
@@ -2670,9 +2671,11 @@ void __vmw_execbuf_release_pinned_bo(struct vmw_private *dev_priv,
|
||||
INIT_LIST_HEAD(&validate_list);
|
||||
|
||||
pinned_val.bo = ttm_bo_reference(dev_priv->pinned_bo);
|
||||
pinned_val.shared = false;
|
||||
list_add_tail(&pinned_val.head, &validate_list);
|
||||
|
||||
query_val.bo = ttm_bo_reference(dev_priv->dummy_query_bo);
|
||||
query_val.shared = false;
|
||||
list_add_tail(&query_val.head, &validate_list);
|
||||
|
||||
ret = ttm_eu_reserve_buffers(&ticket, &validate_list, false);
|
||||
|
@@ -133,6 +133,7 @@ static void vmw_resource_release(struct kref *kref)
|
||||
struct ttm_validate_buffer val_buf;
|
||||
|
||||
val_buf.bo = bo;
|
||||
val_buf.shared = false;
|
||||
res->func->unbind(res, false, &val_buf);
|
||||
}
|
||||
res->backup_dirty = false;
|
||||
@@ -1219,6 +1220,7 @@ vmw_resource_check_buffer(struct vmw_resource *res,
|
||||
|
||||
INIT_LIST_HEAD(&val_list);
|
||||
val_buf->bo = ttm_bo_reference(&res->backup->base);
|
||||
val_buf->shared = false;
|
||||
list_add_tail(&val_buf->head, &val_list);
|
||||
ret = ttm_eu_reserve_buffers(NULL, &val_list, interruptible);
|
||||
if (unlikely(ret != 0))
|
||||
@@ -1312,6 +1314,7 @@ int vmw_resource_do_evict(struct vmw_resource *res, bool interruptible)
|
||||
BUG_ON(!func->may_evict);
|
||||
|
||||
val_buf.bo = NULL;
|
||||
val_buf.shared = false;
|
||||
ret = vmw_resource_check_buffer(res, interruptible, &val_buf);
|
||||
if (unlikely(ret != 0))
|
||||
return ret;
|
||||
@@ -1357,6 +1360,7 @@ int vmw_resource_validate(struct vmw_resource *res)
|
||||
return 0;
|
||||
|
||||
val_buf.bo = NULL;
|
||||
val_buf.shared = false;
|
||||
if (res->backup)
|
||||
val_buf.bo = &res->backup->base;
|
||||
do {
|
||||
@@ -1474,6 +1478,7 @@ void vmw_resource_move_notify(struct ttm_buffer_object *bo,
|
||||
struct ttm_validate_buffer val_buf;
|
||||
|
||||
val_buf.bo = bo;
|
||||
val_buf.shared = false;
|
||||
|
||||
list_for_each_entry_safe(res, n, &dma_buf->res_list, mob_head) {
|
||||
|
||||
|
Reference in New Issue
Block a user