Lines Matching refs:fence_drv
69 struct radeon_fence_driver *drv = &rdev->fence_drv[ring]; in radeon_fence_write()
90 struct radeon_fence_driver *drv = &rdev->fence_drv[ring]; in radeon_fence_read()
120 &rdev->fence_drv[ring].lockup_work, in radeon_fence_schedule_check()
146 (*fence)->seq = seq = ++rdev->fence_drv[ring].sync_seq[ring]; in radeon_fence_emit()
177 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->irq.installed) { 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()
639 seq[ring] = atomic64_read(&rdev->fence_drv[ring].last_seq) + 1ULL; in radeon_fence_wait_next()
640 if (seq[ring] >= rdev->fence_drv[ring].sync_seq[ring]) { in radeon_fence_wait_next()
666 seq[ring] = rdev->fence_drv[ring].sync_seq[ring]; in radeon_fence_wait_empty()
730 emitted = rdev->fence_drv[ring].sync_seq[ring] in radeon_fence_count_emitted()
731 - atomic64_read(&rdev->fence_drv[ring].last_seq); in radeon_fence_count_emitted()
763 fdrv = &fence->rdev->fence_drv[dst_ring]; in radeon_fence_need_sync()
794 src = &fence->rdev->fence_drv[fence->ring]; in radeon_fence_note_sync()
795 dst = &fence->rdev->fence_drv[dst_ring]; in radeon_fence_note_sync()
821 radeon_scratch_free(rdev, rdev->fence_drv[ring].scratch_reg); in radeon_fence_driver_start_ring()
823 rdev->fence_drv[ring].scratch_reg = 0; in radeon_fence_driver_start_ring()
826 rdev->fence_drv[ring].cpu_addr = &rdev->wb.wb[index/4]; in radeon_fence_driver_start_ring()
827 rdev->fence_drv[ring].gpu_addr = rdev->wb.gpu_addr + in radeon_fence_driver_start_ring()
833 rdev->fence_drv[ring].cpu_addr = rdev->uvd.cpu_addr + index; in radeon_fence_driver_start_ring()
834 rdev->fence_drv[ring].gpu_addr = rdev->uvd.gpu_addr + index; in radeon_fence_driver_start_ring()
838 r = radeon_scratch_get(rdev, &rdev->fence_drv[ring].scratch_reg); in radeon_fence_driver_start_ring()
844 rdev->fence_drv[ring].scratch_reg - in radeon_fence_driver_start_ring()
846 rdev->fence_drv[ring].cpu_addr = &rdev->wb.wb[index/4]; in radeon_fence_driver_start_ring()
847 rdev->fence_drv[ring].gpu_addr = rdev->wb.gpu_addr + index; in radeon_fence_driver_start_ring()
849 radeon_fence_write(rdev, atomic64_read(&rdev->fence_drv[ring].last_seq), ring); in radeon_fence_driver_start_ring()
850 rdev->fence_drv[ring].initialized = true; in radeon_fence_driver_start_ring()
852 ring, rdev->fence_drv[ring].gpu_addr); in radeon_fence_driver_start_ring()
870 rdev->fence_drv[ring].scratch_reg = -1; in radeon_fence_driver_init_ring()
871 rdev->fence_drv[ring].cpu_addr = NULL; in radeon_fence_driver_init_ring()
872 rdev->fence_drv[ring].gpu_addr = 0; in radeon_fence_driver_init_ring()
874 rdev->fence_drv[ring].sync_seq[i] = 0; in radeon_fence_driver_init_ring()
875 atomic64_set(&rdev->fence_drv[ring].last_seq, 0); in radeon_fence_driver_init_ring()
876 rdev->fence_drv[ring].initialized = false; in radeon_fence_driver_init_ring()
877 INIT_DELAYED_WORK(&rdev->fence_drv[ring].lockup_work, in radeon_fence_driver_init_ring()
879 rdev->fence_drv[ring].rdev = rdev; in radeon_fence_driver_init_ring()
919 if (!rdev->fence_drv[ring].initialized) in radeon_fence_driver_fini()
926 cancel_delayed_work_sync(&rdev->fence_drv[ring].lockup_work); in radeon_fence_driver_fini()
928 radeon_scratch_free(rdev, rdev->fence_drv[ring].scratch_reg); in radeon_fence_driver_fini()
929 rdev->fence_drv[ring].initialized = false; in radeon_fence_driver_fini()
945 if (rdev->fence_drv[ring].initialized) { in radeon_fence_driver_force_completion()
946 radeon_fence_write(rdev, rdev->fence_drv[ring].sync_seq[ring], ring); in radeon_fence_driver_force_completion()
947 cancel_delayed_work_sync(&rdev->fence_drv[ring].lockup_work); in radeon_fence_driver_force_completion()
962 if (!rdev->fence_drv[i].initialized) in radeon_debugfs_fence_info_show()
969 (unsigned long long)atomic64_read(&rdev->fence_drv[i].last_seq)); in radeon_debugfs_fence_info_show()
971 rdev->fence_drv[i].sync_seq[i]); in radeon_debugfs_fence_info_show()
974 if (i != j && rdev->fence_drv[j].initialized) in radeon_debugfs_fence_info_show()
976 j, rdev->fence_drv[i].sync_seq[j]); in radeon_debugfs_fence_info_show()