Lines Matching refs:fence
41 struct virtio_gpu_fence *fence = to_virtio_fence(f); in virtio_signaled() local
43 if (atomic64_read(&fence->drv->last_seq) >= fence->seq) in virtio_signaled()
50 struct virtio_gpu_fence *fence = to_virtio_fence(f); in virtio_fence_value_str() local
52 snprintf(str, size, "%llu", fence->seq); in virtio_fence_value_str()
57 struct virtio_gpu_fence *fence = to_virtio_fence(f); in virtio_timeline_value_str() local
59 snprintf(str, size, "%llu", (u64)atomic64_read(&fence->drv->last_seq)); in virtio_timeline_value_str()
72 struct virtio_gpu_fence **fence) in virtio_gpu_fence_emit() argument
77 *fence = kmalloc(sizeof(struct virtio_gpu_fence), GFP_ATOMIC); in virtio_gpu_fence_emit()
78 if ((*fence) == NULL) in virtio_gpu_fence_emit()
82 (*fence)->drv = drv; in virtio_gpu_fence_emit()
83 (*fence)->seq = ++drv->sync_seq; in virtio_gpu_fence_emit()
84 dma_fence_init(&(*fence)->f, &virtio_fence_ops, &drv->lock, in virtio_gpu_fence_emit()
85 drv->context, (*fence)->seq); in virtio_gpu_fence_emit()
86 dma_fence_get(&(*fence)->f); in virtio_gpu_fence_emit()
87 list_add_tail(&(*fence)->node, &drv->fences); in virtio_gpu_fence_emit()
91 cmd_hdr->fence_id = cpu_to_le64((*fence)->seq); in virtio_gpu_fence_emit()
99 struct virtio_gpu_fence *fence, *tmp; in virtio_gpu_fence_event_process() local
104 list_for_each_entry_safe(fence, tmp, &drv->fences, node) { in virtio_gpu_fence_event_process()
105 if (last_seq < fence->seq) in virtio_gpu_fence_event_process()
107 dma_fence_signal_locked(&fence->f); in virtio_gpu_fence_event_process()
108 list_del(&fence->node); in virtio_gpu_fence_event_process()
109 dma_fence_put(&fence->f); in virtio_gpu_fence_event_process()