Lines Matching refs:seq

62 static void radeon_fence_write(struct radeon_device *rdev, u32 seq, int ring)  in radeon_fence_write()  argument
67 *drv->cpu_addr = cpu_to_le32(seq); in radeon_fence_write()
70 WREG32(drv->scratch_reg, seq); in radeon_fence_write()
86 u32 seq = 0; in radeon_fence_read() local
90 seq = le32_to_cpu(*drv->cpu_addr); in radeon_fence_read()
92 seq = lower_32_bits(atomic64_read(&drv->last_seq)); in radeon_fence_read()
95 seq = RREG32(drv->scratch_reg); in radeon_fence_read()
97 return seq; in radeon_fence_read()
133 u64 seq = ++rdev->fence_drv[ring].sync_seq[ring]; in radeon_fence_emit() local
141 (*fence)->seq = seq; in radeon_fence_emit()
145 &rdev->fence_queue.lock, rdev->fence_context + ring, seq); in radeon_fence_emit()
147 trace_radeon_fence_emit(rdev->ddev, ring, (*fence)->seq); in radeon_fence_emit()
162 u64 seq; in radeon_fence_check_signaled() local
170 seq = atomic64_read(&fence->rdev->fence_drv[fence->ring].last_seq); in radeon_fence_check_signaled()
171 if (seq >= fence->seq) { in radeon_fence_check_signaled()
199 uint64_t seq, last_seq, last_emitted; in radeon_fence_activity() local
227 seq = radeon_fence_read(rdev, ring); in radeon_fence_activity()
228 seq |= last_seq & 0xffffffff00000000LL; in radeon_fence_activity()
229 if (seq < last_seq) { in radeon_fence_activity()
230 seq &= 0xffffffff; in radeon_fence_activity()
231 seq |= last_emitted & 0xffffffff00000000LL; in radeon_fence_activity()
234 if (seq <= last_seq || seq > last_emitted) { in radeon_fence_activity()
242 last_seq = seq; in radeon_fence_activity()
251 } while (atomic64_xchg(&rdev->fence_drv[ring].last_seq, seq) > seq); in radeon_fence_activity()
253 if (seq < last_emitted) in radeon_fence_activity()
341 u64 seq, unsigned ring) in radeon_fence_seq_signaled() argument
343 if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) { in radeon_fence_seq_signaled()
348 if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) { in radeon_fence_seq_signaled()
359 u64 seq = fence->seq; in radeon_fence_is_signaled() local
361 if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) { in radeon_fence_is_signaled()
369 if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) { in radeon_fence_is_signaled()
389 if (atomic64_read(&rdev->fence_drv[fence->ring].last_seq) >= fence->seq) in radeon_fence_enable_signaling()
399 if (atomic64_read(&rdev->fence_drv[fence->ring].last_seq) >= fence->seq) { in radeon_fence_enable_signaling()
436 if (radeon_fence_seq_signaled(fence->rdev, fence->seq, fence->ring)) { in radeon_fence_signaled()
458 static bool radeon_fence_any_seq_signaled(struct radeon_device *rdev, u64 *seq) in radeon_fence_any_seq_signaled() argument
463 if (seq[i] && radeon_fence_seq_signaled(rdev, seq[i], i)) in radeon_fence_any_seq_signaled()
542 uint64_t seq[RADEON_NUM_RINGS] = {}; in radeon_fence_wait() local
554 seq[fence->ring] = fence->seq; in radeon_fence_wait()
555 r = radeon_fence_wait_seq_timeout(fence->rdev, seq, intr, MAX_SCHEDULE_TIMEOUT); in radeon_fence_wait()
583 uint64_t seq[RADEON_NUM_RINGS]; in radeon_fence_wait_any() local
588 seq[i] = 0; in radeon_fence_wait_any()
594 seq[i] = fences[i]->seq; in radeon_fence_wait_any()
602 r = radeon_fence_wait_seq_timeout(rdev, seq, intr, MAX_SCHEDULE_TIMEOUT); in radeon_fence_wait_any()
621 uint64_t seq[RADEON_NUM_RINGS] = {}; in radeon_fence_wait_next() local
624 seq[ring] = atomic64_read(&rdev->fence_drv[ring].last_seq) + 1ULL; in radeon_fence_wait_next()
625 if (seq[ring] >= rdev->fence_drv[ring].sync_seq[ring]) { in radeon_fence_wait_next()
630 r = radeon_fence_wait_seq_timeout(rdev, seq, false, MAX_SCHEDULE_TIMEOUT); in radeon_fence_wait_next()
648 uint64_t seq[RADEON_NUM_RINGS] = {}; in radeon_fence_wait_empty() local
651 seq[ring] = rdev->fence_drv[ring].sync_seq[ring]; in radeon_fence_wait_empty()
652 if (!seq[ring]) in radeon_fence_wait_empty()
655 r = radeon_fence_wait_seq_timeout(rdev, seq, false, MAX_SCHEDULE_TIMEOUT); in radeon_fence_wait_empty()
749 if (fence->seq <= fdrv->sync_seq[fence->ring]) { in radeon_fence_need_sync()