Home | History | Annotate | Download | only in virtio

Lines Matching defs:fence

50 	struct virtio_gpu_fence *fence = to_virtio_fence(f);
52 if (WARN_ON_ONCE(fence->f.seqno == 0))
53 /* leaked fence outside driver before completing
56 if (atomic64_read(&fence->drv->last_seq) >= fence->f.seqno)
68 struct virtio_gpu_fence *fence = to_virtio_fence(f);
70 snprintf(str, size, "%llu", (u64)atomic64_read(&fence->drv->last_seq));
84 struct virtio_gpu_fence *fence = kzalloc(sizeof(struct virtio_gpu_fence),
86 if (!fence)
87 return fence;
89 fence->drv = drv;
91 /* This only partially initializes the fence because the seqno is
92 * unknown yet. The fence must not be used outside of the driver
95 dma_fence_init(&fence->f, &virtio_fence_ops, &drv->lock, drv->context, 0);
97 return fence;
102 struct virtio_gpu_fence *fence)
108 fence->f.seqno = ++drv->sync_seq;
109 dma_fence_get(&fence->f);
110 list_add_tail(&fence->node, &drv->fences);
113 trace_dma_fence_emit(&fence->f);
116 cmd_hdr->fence_id = cpu_to_le64(fence->f.seqno);
123 struct virtio_gpu_fence *fence, *tmp;
128 list_for_each_entry_safe(fence, tmp, &drv->fences, node) {
129 if (last_seq < fence->f.seqno)
131 dma_fence_signal_locked(&fence->f);
132 list_del(&fence->node);
133 dma_fence_put(&fence->f);