Lines Matching full:fence
45 /* leaked fence outside driver before completing in virtio_gpu_fence_signaled()
64 struct virtio_gpu_fence *fence = kzalloc_obj(struct virtio_gpu_fence); in virtio_gpu_fence_alloc() local
66 if (!fence) in virtio_gpu_fence_alloc()
67 return fence; in virtio_gpu_fence_alloc()
69 fence->drv = drv; in virtio_gpu_fence_alloc()
70 fence->ring_idx = ring_idx; in virtio_gpu_fence_alloc()
71 fence->emit_fence_info = !(base_fence_ctx == drv->context); in virtio_gpu_fence_alloc()
73 /* This only partially initializes the fence because the seqno is in virtio_gpu_fence_alloc()
74 * unknown yet. The fence must not be used outside of the driver in virtio_gpu_fence_alloc()
78 dma_fence_init(&fence->f, &virtio_gpu_fence_ops, &drv->lock, in virtio_gpu_fence_alloc()
81 return fence; in virtio_gpu_fence_alloc()
86 struct virtio_gpu_fence *fence) in virtio_gpu_fence_emit() argument
92 fence->fence_id = fence->f.seqno = ++drv->current_fence_id; in virtio_gpu_fence_emit()
93 dma_fence_get(&fence->f); in virtio_gpu_fence_emit()
94 list_add_tail(&fence->node, &drv->fences); in virtio_gpu_fence_emit()
97 trace_dma_fence_emit(&fence->f); in virtio_gpu_fence_emit()
100 cmd_hdr->fence_id = cpu_to_le64(fence->fence_id); in virtio_gpu_fence_emit()
102 /* Only currently defined fence param. */ in virtio_gpu_fence_emit()
103 if (fence->emit_fence_info) { in virtio_gpu_fence_emit()
106 cmd_hdr->ring_idx = (u8)fence->ring_idx; in virtio_gpu_fence_emit()
127 * than the current signaled fence. in virtio_gpu_fence_event_process()
130 /* dma-fence contexts must match */ in virtio_gpu_fence_event_process()