Lines Matching full:backup
80 if (res->backup) { in vmw_resource_release()
81 struct ttm_buffer_object *bo = &res->backup->base; in vmw_resource_release()
95 vmw_bo_unreference(&res->backup); in vmw_resource_release()
180 res->backup = NULL; in vmw_resource_init()
295 * vmw_resource_buf_alloc - Allocate a backup buffer for a resource.
297 * @res: The resource for which to allocate a backup buffer.
306 struct vmw_buffer_object *backup; in vmw_resource_buf_alloc() local
309 if (likely(res->backup)) { in vmw_resource_buf_alloc()
310 BUG_ON(res->backup->base.num_pages * PAGE_SIZE < size); in vmw_resource_buf_alloc()
314 backup = kzalloc(sizeof(*backup), GFP_KERNEL); in vmw_resource_buf_alloc()
315 if (unlikely(!backup)) in vmw_resource_buf_alloc()
318 ret = vmw_bo_init(res->dev_priv, backup, res->backup_size, in vmw_resource_buf_alloc()
325 res->backup = backup; in vmw_resource_buf_alloc()
337 * containing backup data if a bind operation is needed.
362 list_add_tail(&res->mob_head, &res->backup->res_list); in vmw_resource_do_validate()
368 * backup buffers have been unreserved. Otherwise in vmw_resource_do_validate()
386 * @switch_backup: Backup buffer has been switched.
387 * @new_backup: Pointer to new backup buffer if command submission
389 * @new_backup_offset: New backup offset if @switch_backup is true.
404 if (switch_backup && new_backup != res->backup) { in vmw_resource_unreserve()
405 if (res->backup) { in vmw_resource_unreserve()
406 lockdep_assert_held(&res->backup->base.resv->lock.base); in vmw_resource_unreserve()
408 vmw_bo_unreference(&res->backup); in vmw_resource_unreserve()
412 res->backup = vmw_bo_reference(new_backup); in vmw_resource_unreserve()
416 res->backup = NULL; in vmw_resource_unreserve()
432 * vmw_resource_check_buffer - Check whether a backup buffer is needed
437 * @res: The resource for which to allocate a backup buffer.
441 * reserved and validated backup buffer.
454 if (unlikely(res->backup == NULL)) { in vmw_resource_check_buffer()
461 val_buf->bo = ttm_bo_reference(&res->backup->base); in vmw_resource_check_buffer()
472 ret = ttm_bo_validate(&res->backup->base, in vmw_resource_check_buffer()
486 vmw_bo_unreference(&res->backup); in vmw_resource_check_buffer()
497 * a backup buffer is present for guest-backed resources. However,
511 if (res->func->needs_backup && res->backup == NULL && in vmw_resource_reserve()
515 DRM_ERROR("Failed to allocate a backup buffer " in vmw_resource_reserve()
527 * backup buffer
530 * @val_buf: Backup buffer information.
549 * to a backup buffer.
593 * On succesful return, any backup DMA buffer pointed to by @res->backup will
612 if (res->backup) in vmw_resource_validate()
613 val_buf.bo = &res->backup->base; in vmw_resource_validate()
635 /* Trylock backup buffers with a NULL ticket. */ in vmw_resource_validate()
653 else if (!res->func->needs_backup && res->backup) { in vmw_resource_validate()
655 vmw_bo_unreference(&res->backup); in vmw_resource_validate()
670 * Evicts the Guest Backed hardware resource if the backup
674 * both require the backup buffer to be reserved.
794 * vmw_resource_needs_backup - Return whether a resource needs a backup buffer.
833 /* Wait lock backup buffers with a ticket. */ in vmw_resource_evict_type()
899 if (res->backup) { in vmw_resource_pin()
900 vbo = res->backup; in vmw_resource_pin()
954 if (--res->pin_count == 0 && res->backup) { in vmw_resource_unpin()
955 struct vmw_buffer_object *vbo = res->backup; in vmw_resource_unpin()