Lines Matching defs:ring
36 * @ring: radeon_ring structure holding ring information
41 bool si_dma_is_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
46 if (ring->idx == R600_RING_TYPE_DMA_INDEX)
52 radeon_ring_lockup_update(rdev, ring);
55 return radeon_ring_test_lockup(rdev, ring);
187 void si_dma_vm_flush(struct radeon_device *rdev, struct radeon_ring *ring,
191 radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0, 0, 0));
193 radeon_ring_write(ring, (0xf << 16) | ((VM_CONTEXT0_PAGE_TABLE_BASE_ADDR + (vm_id << 2)) >> 2));
195 radeon_ring_write(ring, (0xf << 16) | ((VM_CONTEXT8_PAGE_TABLE_BASE_ADDR + ((vm_id - 8) << 2)) >> 2));
197 radeon_ring_write(ring, pd_addr >> 12);
200 radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0, 0, 0));
201 radeon_ring_write(ring, (0xf << 16) | (HDP_MEM_COHERENCY_FLUSH_CNTL >> 2));
202 radeon_ring_write(ring, 1);
205 radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0, 0, 0));
206 radeon_ring_write(ring, (0xf << 16) | (VM_INVALIDATE_REQUEST >> 2));
207 radeon_ring_write(ring, 1 << vm_id);
210 radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_POLL_REG_MEM, 0, 0, 0, 0));
211 radeon_ring_write(ring, VM_INVALIDATE_REQUEST);
212 radeon_ring_write(ring, 0xff << 16); /* retry */
213 radeon_ring_write(ring, 1 << vm_id); /* mask */
214 radeon_ring_write(ring, 0); /* value */
215 radeon_ring_write(ring, (0 << 28) | 0x20); /* func(always) | poll interval */
239 struct radeon_ring *ring = &rdev->ring[ring_index];
248 r = radeon_ring_lock(rdev, ring, num_loops * 5 + 11);
256 radeon_sync_rings(rdev, &sync, ring->idx);
263 radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_COPY, 1, 0, 0, cur_size_in_bytes));
264 radeon_ring_write(ring, lower_32_bits(dst_offset));
265 radeon_ring_write(ring, lower_32_bits(src_offset));
266 radeon_ring_write(ring, upper_32_bits(dst_offset) & 0xff);
267 radeon_ring_write(ring, upper_32_bits(src_offset) & 0xff);
272 r = radeon_fence_emit(rdev, &fence, ring->idx);
274 radeon_ring_unlock_undo(rdev, ring);
279 radeon_ring_unlock_commit(rdev, ring, false);