Lines Matching refs:fence
45 struct virtio_gpu_fence *fence = to_virtio_fence(f); in virtio_fence_signaled() local
47 if (WARN_ON_ONCE(fence->f.seqno == 0)) in virtio_fence_signaled()
51 if (atomic64_read(&fence->drv->last_seq) >= fence->f.seqno) in virtio_fence_signaled()
63 struct virtio_gpu_fence *fence = to_virtio_fence(f); in virtio_timeline_value_str() local
65 snprintf(str, size, "%llu", (u64)atomic64_read(&fence->drv->last_seq)); in virtio_timeline_value_str()
79 struct virtio_gpu_fence *fence = kzalloc(sizeof(struct virtio_gpu_fence), in virtio_gpu_fence_alloc() local
81 if (!fence) in virtio_gpu_fence_alloc()
82 return fence; in virtio_gpu_fence_alloc()
84 fence->drv = drv; in virtio_gpu_fence_alloc()
90 dma_fence_init(&fence->f, &virtio_fence_ops, &drv->lock, drv->context, 0); in virtio_gpu_fence_alloc()
92 return fence; in virtio_gpu_fence_alloc()
97 struct virtio_gpu_fence *fence) in virtio_gpu_fence_emit() argument
103 fence->f.seqno = ++drv->sync_seq; in virtio_gpu_fence_emit()
104 dma_fence_get(&fence->f); in virtio_gpu_fence_emit()
105 list_add_tail(&fence->node, &drv->fences); in virtio_gpu_fence_emit()
108 trace_dma_fence_emit(&fence->f); in virtio_gpu_fence_emit()
111 cmd_hdr->fence_id = cpu_to_le64(fence->f.seqno); in virtio_gpu_fence_emit()
118 struct virtio_gpu_fence *fence, *tmp; in virtio_gpu_fence_event_process() local
123 list_for_each_entry_safe(fence, tmp, &drv->fences, node) { in virtio_gpu_fence_event_process()
124 if (last_seq < fence->f.seqno) in virtio_gpu_fence_event_process()
126 dma_fence_signal_locked(&fence->f); in virtio_gpu_fence_event_process()
127 list_del(&fence->node); in virtio_gpu_fence_event_process()
128 dma_fence_put(&fence->f); in virtio_gpu_fence_event_process()