Lines Matching defs:rdev
48 static void radeon_debugfs_ring_init(struct radeon_device *rdev, struct radeon_ring *ring);
54 * @rdev: radeon_device pointer
60 bool radeon_ring_supports_scratch_reg(struct radeon_device *rdev,
76 * @rdev: radeon_device pointer
81 void radeon_ring_free_size(struct radeon_device *rdev, struct radeon_ring *ring)
83 uint32_t rptr = radeon_ring_get_rptr(rdev, ring);
93 radeon_ring_lockup_update(rdev, ring);
100 * @rdev: radeon_device pointer
107 int radeon_ring_alloc(struct radeon_device *rdev, struct radeon_ring *ring, unsigned ndw)
116 radeon_ring_free_size(rdev, ring);
119 radeon_ring_free_size(rdev, ring);
123 r = radeon_fence_wait_next(rdev, ring->idx);
135 * @rdev: radeon_device pointer
143 int radeon_ring_lock(struct radeon_device *rdev, struct radeon_ring *ring, unsigned ndw)
147 mutex_lock(&rdev->ring_lock);
148 r = radeon_ring_alloc(rdev, ring, ndw);
150 mutex_unlock(&rdev->ring_lock);
160 * @rdev: radeon_device pointer
167 void radeon_ring_commit(struct radeon_device *rdev, struct radeon_ring *ring,
173 if (hdp_flush && rdev->asic->ring[ring->idx]->hdp_flush)
174 rdev->asic->ring[ring->idx]->hdp_flush(rdev, ring);
183 if (hdp_flush && rdev->asic->mmio_hdp_flush)
184 rdev->asic->mmio_hdp_flush(rdev);
185 radeon_ring_set_wptr(rdev, ring);
192 * @rdev: radeon_device pointer
198 void radeon_ring_unlock_commit(struct radeon_device *rdev, struct radeon_ring *ring,
201 radeon_ring_commit(rdev, ring, hdp_flush);
202 mutex_unlock(&rdev->ring_lock);
220 * @rdev: radeon device structure
225 void radeon_ring_unlock_undo(struct radeon_device *rdev, struct radeon_ring *ring)
228 mutex_unlock(&rdev->ring_lock);
234 * @rdev: radeon device structure
239 void radeon_ring_lockup_update(struct radeon_device *rdev,
242 atomic_set(&ring->last_rptr, radeon_ring_get_rptr(rdev, ring));
248 * @rdev: radeon device structure
252 bool radeon_ring_test_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
254 uint32_t rptr = radeon_ring_get_rptr(rdev, ring);
260 radeon_ring_lockup_update(rdev, ring);
266 dev_err(rdev->dev, "ring %d stalled for more than %llumsec\n",
277 * @rdev: radeon_device pointer
283 unsigned radeon_ring_backup(struct radeon_device *rdev, struct radeon_ring *ring,
289 mutex_lock(&rdev->ring_lock);
293 mutex_unlock(&rdev->ring_lock);
298 if (!radeon_fence_count_emitted(rdev, ring->idx)) {
299 mutex_unlock(&rdev->ring_lock);
306 else if (rdev->wb.enabled)
310 mutex_unlock(&rdev->ring_lock);
318 mutex_unlock(&rdev->ring_lock);
325 mutex_unlock(&rdev->ring_lock);
333 mutex_unlock(&rdev->ring_lock);
340 * @rdev: radeon_device pointer
347 int radeon_ring_restore(struct radeon_device *rdev, struct radeon_ring *ring,
356 r = radeon_ring_lock(rdev, ring, size);
364 radeon_ring_unlock_commit(rdev, ring, false);
372 * @rdev: radeon_device pointer
381 int radeon_ring_init(struct radeon_device *rdev, struct radeon_ring *ring, unsigned ring_size,
389 ring->rdev = rdev;
392 r = radeon_bo_create(rdev, ring->ring_size, PAGE_SIZE, true,
396 dev_err(rdev->dev, "(%d) ring create failed\n", r);
406 dev_err(rdev->dev, "(%d) ring pin failed\n", r);
413 dev_err(rdev->dev, "(%d) ring map failed\n", r);
419 if (rdev->wb.enabled) {
421 ring->next_rptr_gpu_addr = rdev->wb.gpu_addr + index;
422 ring->next_rptr_cpu_addr = &rdev->wb.wb[index/4];
424 radeon_debugfs_ring_init(rdev, ring);
425 radeon_ring_lockup_update(rdev, ring);
432 * @rdev: radeon_device pointer
437 void radeon_ring_fini(struct radeon_device *rdev, struct radeon_ring *ring)
442 mutex_lock(&rdev->ring_lock);
447 mutex_unlock(&rdev->ring_lock);
468 struct radeon_device *rdev = ring->rdev;
473 radeon_ring_free_size(rdev, ring);
476 wptr = radeon_ring_get_wptr(rdev, ring);
480 rptr = radeon_ring_get_rptr(rdev, ring);
547 static void radeon_debugfs_ring_init(struct radeon_device *rdev, struct radeon_ring *ring)
551 struct dentry *root = rdev->ddev->primary->debugfs_root;