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->seqno, parent->value, fence->ops); in timeline_fence_signaled()
176 static void timeline_fence_value_str(struct dma_fence *fence, in timeline_fence_value_str() argument
179 snprintf(str, size, "%lld", fence->seqno); in timeline_fence_value_str()
182 static void timeline_fence_timeline_value_str(struct dma_fence *fence, in timeline_fence_timeline_value_str() argument
185 struct sync_timeline *parent = dma_fence_parent(fence); in timeline_fence_timeline_value_str()
190 static void timeline_fence_set_deadline(struct dma_fence *fence, ktime_t deadline) in timeline_fence_set_deadline() argument
192 struct sync_pt *pt = dma_fence_to_sync_pt(fence); in timeline_fence_set_deadline()
195 spin_lock_irqsave(fence->lock, flags); in timeline_fence_set_deadline()
196 if (test_bit(SW_SYNC_HAS_DEADLINE_BIT, &fence->flags)) { in timeline_fence_set_deadline()
201 __set_bit(SW_SYNC_HAS_DEADLINE_BIT, &fence->flags); in timeline_fence_set_deadline()
203 spin_unlock_irqrestore(fence->lock, flags); in timeline_fence_set_deadline()
389 data.fence = fd; in sw_sync_ioctl_create_fence()
425 struct dma_fence *fence; in sw_sync_ioctl_get_deadline() local
436 fence = sync_file_get_fence(data.fence_fd); in sw_sync_ioctl_get_deadline()
437 if (!fence) in sw_sync_ioctl_get_deadline()
440 pt = dma_fence_to_sync_pt(fence); in sw_sync_ioctl_get_deadline()
446 spin_lock_irqsave(fence->lock, flags); in sw_sync_ioctl_get_deadline()
447 if (!test_bit(SW_SYNC_HAS_DEADLINE_BIT, &fence->flags)) { in sw_sync_ioctl_get_deadline()
452 spin_unlock_irqrestore(fence->lock, flags); in sw_sync_ioctl_get_deadline()
454 dma_fence_put(fence); in sw_sync_ioctl_get_deadline()
465 spin_unlock_irqrestore(fence->lock, flags); in sw_sync_ioctl_get_deadline()
467 dma_fence_put(fence); in sw_sync_ioctl_get_deadline()