Lines Matching refs:fence_drv
64 struct radeon_fence_driver *drv = &rdev->fence_drv[ring]; in radeon_fence_write()
85 struct radeon_fence_driver *drv = &rdev->fence_drv[ring]; in radeon_fence_read()
115 &rdev->fence_drv[ring].lockup_work, in radeon_fence_schedule_check()
133 u64 seq = ++rdev->fence_drv[ring].sync_seq[ring]; in radeon_fence_emit()
170 seq = atomic64_read(&fence->rdev->fence_drv[fence->ring].last_seq); in radeon_fence_check_signaled()
224 last_seq = atomic64_read(&rdev->fence_drv[ring].last_seq); in radeon_fence_activity()
226 last_emitted = rdev->fence_drv[ring].sync_seq[ring]; in radeon_fence_activity()
251 } while (atomic64_xchg(&rdev->fence_drv[ring].last_seq, seq) > seq); in radeon_fence_activity()
269 struct radeon_fence_driver *fence_drv; in radeon_fence_check_lockup() local
273 fence_drv = container_of(work, struct radeon_fence_driver, in radeon_fence_check_lockup()
275 rdev = fence_drv->rdev; in radeon_fence_check_lockup()
276 ring = fence_drv - &rdev->fence_drv[0]; in radeon_fence_check_lockup()
284 if (fence_drv->delayed_irq && rdev->ddev->irq_enabled) { in radeon_fence_check_lockup()
287 fence_drv->delayed_irq = false; in radeon_fence_check_lockup()
301 (uint64_t)atomic64_read(&fence_drv->last_seq), in radeon_fence_check_lockup()
302 fence_drv->sync_seq[ring], ring); in radeon_fence_check_lockup()
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()
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()
409 rdev->fence_drv[fence->ring].delayed_irq = true; in radeon_fence_enable_signaling()
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()
651 seq[ring] = rdev->fence_drv[ring].sync_seq[ring]; in radeon_fence_wait_empty()
715 emitted = rdev->fence_drv[ring].sync_seq[ring] in radeon_fence_count_emitted()
716 - atomic64_read(&rdev->fence_drv[ring].last_seq); in radeon_fence_count_emitted()
748 fdrv = &fence->rdev->fence_drv[dst_ring]; in radeon_fence_need_sync()
779 src = &fence->rdev->fence_drv[fence->ring]; in radeon_fence_note_sync()
780 dst = &fence->rdev->fence_drv[dst_ring]; in radeon_fence_note_sync()
806 radeon_scratch_free(rdev, rdev->fence_drv[ring].scratch_reg); in radeon_fence_driver_start_ring()
808 rdev->fence_drv[ring].scratch_reg = 0; in radeon_fence_driver_start_ring()
811 rdev->fence_drv[ring].cpu_addr = &rdev->wb.wb[index/4]; in radeon_fence_driver_start_ring()
812 rdev->fence_drv[ring].gpu_addr = rdev->wb.gpu_addr + in radeon_fence_driver_start_ring()
818 rdev->fence_drv[ring].cpu_addr = rdev->uvd.cpu_addr + index; in radeon_fence_driver_start_ring()
819 rdev->fence_drv[ring].gpu_addr = rdev->uvd.gpu_addr + index; in radeon_fence_driver_start_ring()
823 r = radeon_scratch_get(rdev, &rdev->fence_drv[ring].scratch_reg); in radeon_fence_driver_start_ring()
829 rdev->fence_drv[ring].scratch_reg - in radeon_fence_driver_start_ring()
831 rdev->fence_drv[ring].cpu_addr = &rdev->wb.wb[index/4]; in radeon_fence_driver_start_ring()
832 rdev->fence_drv[ring].gpu_addr = rdev->wb.gpu_addr + index; in radeon_fence_driver_start_ring()
834 radeon_fence_write(rdev, atomic64_read(&rdev->fence_drv[ring].last_seq), ring); in radeon_fence_driver_start_ring()
835 rdev->fence_drv[ring].initialized = true; in radeon_fence_driver_start_ring()
837 ring, rdev->fence_drv[ring].gpu_addr, rdev->fence_drv[ring].cpu_addr); in radeon_fence_driver_start_ring()
855 rdev->fence_drv[ring].scratch_reg = -1; in radeon_fence_driver_init_ring()
856 rdev->fence_drv[ring].cpu_addr = NULL; in radeon_fence_driver_init_ring()
857 rdev->fence_drv[ring].gpu_addr = 0; in radeon_fence_driver_init_ring()
859 rdev->fence_drv[ring].sync_seq[i] = 0; in radeon_fence_driver_init_ring()
860 atomic64_set(&rdev->fence_drv[ring].last_seq, 0); in radeon_fence_driver_init_ring()
861 rdev->fence_drv[ring].initialized = false; in radeon_fence_driver_init_ring()
862 INIT_DELAYED_WORK(&rdev->fence_drv[ring].lockup_work, in radeon_fence_driver_init_ring()
864 rdev->fence_drv[ring].rdev = rdev; in radeon_fence_driver_init_ring()
907 if (!rdev->fence_drv[ring].initialized) in radeon_fence_driver_fini()
914 cancel_delayed_work_sync(&rdev->fence_drv[ring].lockup_work); in radeon_fence_driver_fini()
916 radeon_scratch_free(rdev, rdev->fence_drv[ring].scratch_reg); in radeon_fence_driver_fini()
917 rdev->fence_drv[ring].initialized = false; in radeon_fence_driver_fini()
933 if (rdev->fence_drv[ring].initialized) { in radeon_fence_driver_force_completion()
934 radeon_fence_write(rdev, rdev->fence_drv[ring].sync_seq[ring], ring); in radeon_fence_driver_force_completion()
935 cancel_delayed_work_sync(&rdev->fence_drv[ring].lockup_work); in radeon_fence_driver_force_completion()
952 if (!rdev->fence_drv[i].initialized) in radeon_debugfs_fence_info()
959 (unsigned long long)atomic64_read(&rdev->fence_drv[i].last_seq)); in radeon_debugfs_fence_info()
961 rdev->fence_drv[i].sync_seq[i]); in radeon_debugfs_fence_info()
964 if (i != j && rdev->fence_drv[j].initialized) in radeon_debugfs_fence_info()
966 j, rdev->fence_drv[i].sync_seq[j]); in radeon_debugfs_fence_info()