Lines Matching refs:rdev

41 static int radeon_debugfs_sa_init(struct radeon_device *rdev);
55 int radeon_ib_get(struct radeon_device *rdev, int ring, in radeon_ib_get() argument
61 r = radeon_sa_bo_new(rdev, &rdev->ring_tmp_bo, &ib->sa_bo, size, 256); in radeon_ib_get()
63 dev_err(rdev->dev, "failed to get a new IB (%d)\n", r); in radeon_ib_get()
94 void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib *ib) in radeon_ib_free() argument
96 radeon_sync_free(rdev, &ib->sync, ib->fence); in radeon_ib_free()
97 radeon_sa_bo_free(rdev, &ib->sa_bo, ib->fence); in radeon_ib_free()
122 int radeon_ib_schedule(struct radeon_device *rdev, struct radeon_ib *ib, in radeon_ib_schedule() argument
125 struct radeon_ring *ring = &rdev->ring[ib->ring]; in radeon_ib_schedule()
130 dev_err(rdev->dev, "couldn't schedule ib\n"); in radeon_ib_schedule()
135 r = radeon_ring_lock(rdev, ring, 64 + RADEON_NUM_SYNCS * 8); in radeon_ib_schedule()
137 dev_err(rdev->dev, "scheduling IB failed (%d).\n", r); in radeon_ib_schedule()
144 vm_id_fence = radeon_vm_grab_id(rdev, ib->vm, ib->ring); in radeon_ib_schedule()
149 r = radeon_sync_rings(rdev, &ib->sync, ib->ring); in radeon_ib_schedule()
151 dev_err(rdev->dev, "failed to sync rings (%d)\n", r); in radeon_ib_schedule()
152 radeon_ring_unlock_undo(rdev, ring); in radeon_ib_schedule()
157 radeon_vm_flush(rdev, ib->vm, ib->ring, in radeon_ib_schedule()
161 radeon_ring_ib_execute(rdev, const_ib->ring, const_ib); in radeon_ib_schedule()
162 radeon_sync_free(rdev, &const_ib->sync, NULL); in radeon_ib_schedule()
164 radeon_ring_ib_execute(rdev, ib->ring, ib); in radeon_ib_schedule()
165 r = radeon_fence_emit(rdev, &ib->fence, ib->ring); in radeon_ib_schedule()
167 dev_err(rdev->dev, "failed to emit fence for new IB (%d)\n", r); in radeon_ib_schedule()
168 radeon_ring_unlock_undo(rdev, ring); in radeon_ib_schedule()
176 radeon_vm_fence(rdev, ib->vm, ib->fence); in radeon_ib_schedule()
178 radeon_ring_unlock_commit(rdev, ring, hdp_flush); in radeon_ib_schedule()
191 int radeon_ib_pool_init(struct radeon_device *rdev) in radeon_ib_pool_init() argument
195 if (rdev->ib_pool_ready) { in radeon_ib_pool_init()
199 if (rdev->family >= CHIP_BONAIRE) { in radeon_ib_pool_init()
200 r = radeon_sa_bo_manager_init(rdev, &rdev->ring_tmp_bo, in radeon_ib_pool_init()
209 r = radeon_sa_bo_manager_init(rdev, &rdev->ring_tmp_bo, in radeon_ib_pool_init()
218 r = radeon_sa_bo_manager_start(rdev, &rdev->ring_tmp_bo); in radeon_ib_pool_init()
223 rdev->ib_pool_ready = true; in radeon_ib_pool_init()
224 if (radeon_debugfs_sa_init(rdev)) { in radeon_ib_pool_init()
225 dev_err(rdev->dev, "failed to register debugfs file for SA\n"); in radeon_ib_pool_init()
238 void radeon_ib_pool_fini(struct radeon_device *rdev) in radeon_ib_pool_fini() argument
240 if (rdev->ib_pool_ready) { in radeon_ib_pool_fini()
241 radeon_sa_bo_manager_suspend(rdev, &rdev->ring_tmp_bo); in radeon_ib_pool_fini()
242 radeon_sa_bo_manager_fini(rdev, &rdev->ring_tmp_bo); in radeon_ib_pool_fini()
243 rdev->ib_pool_ready = false; in radeon_ib_pool_fini()
257 int radeon_ib_ring_tests(struct radeon_device *rdev) in radeon_ib_ring_tests() argument
263 struct radeon_ring *ring = &rdev->ring[i]; in radeon_ib_ring_tests()
268 r = radeon_ib_test(rdev, i, ring); in radeon_ib_ring_tests()
270 radeon_fence_driver_force_completion(rdev, i); in radeon_ib_ring_tests()
272 rdev->needs_reset = false; in radeon_ib_ring_tests()
277 rdev->accel_working = false; in radeon_ib_ring_tests()
298 struct radeon_device *rdev = dev->dev_private; in radeon_debugfs_sa_info() local
300 radeon_sa_bo_dump_debug_info(&rdev->ring_tmp_bo, m); in radeon_debugfs_sa_info()
312 static int radeon_debugfs_sa_init(struct radeon_device *rdev) in radeon_debugfs_sa_init() argument
315 return radeon_debugfs_add_files(rdev, radeon_debugfs_sa_list, 1); in radeon_debugfs_sa_init()