Lines Matching refs:fence
52 __s32 fence; /* fd of new fence */ member
85 static inline struct sync_pt *dma_fence_to_sync_pt(struct dma_fence *fence) in dma_fence_to_sync_pt() argument
87 if (fence->ops != &timeline_fence_ops) in dma_fence_to_sync_pt()
89 return container_of(fence, struct sync_pt, base); in dma_fence_to_sync_pt()
140 static const char *timeline_fence_get_driver_name(struct dma_fence *fence) in timeline_fence_get_driver_name() argument
145 static const char *timeline_fence_get_timeline_name(struct dma_fence *fence) in timeline_fence_get_timeline_name() argument
147 struct sync_timeline *parent = dma_fence_parent(fence); in timeline_fence_get_timeline_name()
152 static void timeline_fence_release(struct dma_fence *fence) in timeline_fence_release() argument
154 struct sync_pt *pt = dma_fence_to_sync_pt(fence); in timeline_fence_release()
155 struct sync_timeline *parent = dma_fence_parent(fence); in timeline_fence_release()
158 spin_lock_irqsave(fence->lock, flags); in timeline_fence_release()
163 spin_unlock_irqrestore(fence->lock, flags); in timeline_fence_release()
166 dma_fence_free(fence); in timeline_fence_release()
169 static bool timeline_fence_signaled(struct dma_fence *fence) in timeline_fence_signaled() argument
171 struct sync_timeline *parent = dma_fence_parent(fence); in timeline_fence_signaled()
173 return !__dma_fence_is_later(fence, fence->seqno, parent->value); in timeline_fence_signaled()
176 static void timeline_fence_set_deadline(struct dma_fence *fence, ktime_t deadline) in timeline_fence_set_deadline() argument
178 struct sync_pt *pt = dma_fence_to_sync_pt(fence); in timeline_fence_set_deadline()
181 spin_lock_irqsave(fence->lock, flags); in timeline_fence_set_deadline()
182 if (test_bit(SW_SYNC_HAS_DEADLINE_BIT, &fence->flags)) { in timeline_fence_set_deadline()
187 __set_bit(SW_SYNC_HAS_DEADLINE_BIT, &fence->flags); in timeline_fence_set_deadline()
189 spin_unlock_irqrestore(fence->lock, flags); in timeline_fence_set_deadline()
373 data.fence = fd; in sw_sync_ioctl_create_fence()
409 struct dma_fence *fence; in sw_sync_ioctl_get_deadline() local
420 fence = sync_file_get_fence(data.fence_fd); in sw_sync_ioctl_get_deadline()
421 if (!fence) in sw_sync_ioctl_get_deadline()
424 pt = dma_fence_to_sync_pt(fence); in sw_sync_ioctl_get_deadline()
430 spin_lock_irqsave(fence->lock, flags); in sw_sync_ioctl_get_deadline()
431 if (!test_bit(SW_SYNC_HAS_DEADLINE_BIT, &fence->flags)) { in sw_sync_ioctl_get_deadline()
436 spin_unlock_irqrestore(fence->lock, flags); in sw_sync_ioctl_get_deadline()
438 dma_fence_put(fence); in sw_sync_ioctl_get_deadline()
449 spin_unlock_irqrestore(fence->lock, flags); in sw_sync_ioctl_get_deadline()
451 dma_fence_put(fence); in sw_sync_ioctl_get_deadline()