/linux/drivers/gpu/drm/amd/amdgpu/ |
A D | amdgpu_ring.c | 74 ring->wptr_old = ring->wptr; in amdgpu_ring_alloc() 77 ring->funcs->begin_use(ring); in amdgpu_ring_alloc() 128 ring->funcs->insert_nop(ring, count); in amdgpu_ring_commit() 134 ring->funcs->end_use(ring); in amdgpu_ring_commit() 146 ring->wptr = ring->wptr_old; in amdgpu_ring_undo() 149 ring->funcs->end_use(ring); in amdgpu_ring_undo() 193 adev->rings[ring->idx] = ring; in amdgpu_ring_init() 255 (void **)&ring->ring); in amdgpu_ring_init() 287 if (!(ring->adev) || !(ring->adev->rings[ring->idx])) in amdgpu_ring_fini() 300 (void **)&ring->ring); in amdgpu_ring_fini() [all …]
|
A D | jpeg_v1_0.c | 44 ring->ring[(*ptr)++] = 0; in jpeg_v1_0_decode_ring_patch_wreg() 47 ring->ring[(*ptr)++] = reg_offset; in jpeg_v1_0_decode_ring_patch_wreg() 50 ring->ring[(*ptr)++] = val; in jpeg_v1_0_decode_ring_patch_wreg() 73 ring->ring[ptr++] = PACKETJ(0, 0, 0, PACKETJ_TYPE2); in jpeg_v1_0_decode_ring_set_patch_ring() 74 ring->ring[ptr++] = 0; in jpeg_v1_0_decode_ring_set_patch_ring() 96 ring->ring[ptr++] = 0x01400200; in jpeg_v1_0_decode_ring_set_patch_ring() 98 ring->ring[ptr++] = val; in jpeg_v1_0_decode_ring_set_patch_ring() 102 ring->ring[ptr++] = 0; in jpeg_v1_0_decode_ring_set_patch_ring() 105 ring->ring[ptr++] = reg_offset; in jpeg_v1_0_decode_ring_set_patch_ring() 108 ring->ring[ptr++] = mask; in jpeg_v1_0_decode_ring_set_patch_ring() [all …]
|
A D | amdgpu_fence.c | 156 am_fence->ring = ring; in amdgpu_fence_emit() 177 amdgpu_ring_emit_fence(ring, ring->fence_drv.gpu_addr, in amdgpu_fence_emit() 233 amdgpu_ring_emit_fence(ring, ring->fence_drv.gpu_addr, in amdgpu_fence_emit_polling() 319 struct amdgpu_ring *ring = from_timer(ring, t, in amdgpu_fence_fallback() local 425 ring->fence_drv.cpu_addr = &adev->wb.wb[ring->fence_offs]; in amdgpu_fence_driver_start_ring() 440 ring->name, ring->fence_drv.gpu_addr); in amdgpu_fence_driver_start_ring() 547 if (!ring || !ring->fence_drv.initialized) in amdgpu_fence_driver_hw_fini() 574 if (!ring || !ring->fence_drv.initialized) in amdgpu_fence_driver_sw_fini() 606 if (!ring || !ring->fence_drv.initialized) in amdgpu_fence_driver_hw_init() 643 amdgpu_fence_write(ring, ring->fence_drv.sync_seq); in amdgpu_fence_driver_force_completion() [all …]
|
A D | amdgpu_ib.c | 158 if (!ring->sched.ready) { in amdgpu_ib_schedule() 197 ring->funcs->emit_mem_sync(ring); in amdgpu_ib_schedule() 201 ring->funcs->emit_wave_limit(ring, true); in amdgpu_ib_schedule() 204 ring->funcs->insert_start(ring); in amdgpu_ib_schedule() 209 amdgpu_ring_undo(ring); in amdgpu_ib_schedule() 270 amdgpu_ring_undo(ring); in amdgpu_ib_schedule() 275 ring->funcs->insert_end(ring); in amdgpu_ib_schedule() 286 ring->funcs->emit_wave_limit(ring, false); in amdgpu_ib_schedule() 390 if (!ring->sched.ready || !ring->funcs->test_ib) in amdgpu_ib_ring_tests() 407 ring->name); in amdgpu_ib_ring_tests() [all …]
|
A D | jpeg_v2_0.c | 69 struct amdgpu_ring *ring; in jpeg_v2_0_sw_init() local 87 ring->use_doorbell = true; in jpeg_v2_0_sw_init() 409 if (ring->use_doorbell) in jpeg_v2_0_dec_ring_get_wptr() 426 if (ring->use_doorbell) { in jpeg_v2_0_dec_ring_set_wptr() 427 adev->wb.wb[ring->wptr_offs] = lower_32_bits(ring->wptr); in jpeg_v2_0_dec_ring_set_wptr() 428 WDOORBELL32(ring->doorbell_index, lower_32_bits(ring->wptr)); in jpeg_v2_0_dec_ring_set_wptr() 560 amdgpu_ring_write(ring, lower_32_bits(ring->gpu_addr)); in jpeg_v2_0_dec_ring_emit_ib() 564 amdgpu_ring_write(ring, upper_32_bits(ring->gpu_addr)); in jpeg_v2_0_dec_ring_emit_ib() 599 amdgpu_ring_write(ring, in jpeg_v2_0_dec_ring_emit_reg_wait() 612 struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub]; in jpeg_v2_0_dec_ring_emit_vm_flush() [all …]
|
A D | amdgpu_ring.h | 217 volatile uint32_t *ring; member 307 ring->ring[i++] = ring->funcs->nop; in amdgpu_ring_clear_ring() 313 if (ring->count_dw <= 0) in amdgpu_ring_write() 315 ring->ring[ring->wptr++ & ring->buf_mask] = v; in amdgpu_ring_write() 316 ring->wptr &= ring->ptr_mask; in amdgpu_ring_write() 317 ring->count_dw--; in amdgpu_ring_write() 329 occupied = ring->wptr & ring->buf_mask; in amdgpu_ring_write_multiple() 330 dst = (void *)&ring->ring[occupied]; in amdgpu_ring_write_multiple() 342 dst = (void *)ring->ring; in amdgpu_ring_write_multiple() 346 ring->wptr += count_dw; in amdgpu_ring_write_multiple() [all …]
|
/linux/drivers/soc/ti/ |
A D | k3-ringacc.c | 318 ring->elm_size, ring->size, ring->mode, ring->proxy_id); in k3_ringacc_ring_dump() 603 ring->size * (4 << ring->elm_size), in k3_ringacc_ring_free() 757 ring->size * (4 << ring->elm_size), in k3_dmaring_cfg() 887 ring->state.free = ring->size - k3_ringacc_ring_read_occ(ring); in k3_ringacc_ring_get_free() 1045 ring->state.free, ring->state.windex, ring->state.occ, in k3_ringacc_ring_access_io() 1099 elem_idx = ring->size - (ring->state.occ - ring->state.windex); in k3_dmaring_fwd_pop() 1124 ring->state.rindex = (ring->state.rindex + 1) % ring->size; in k3_dmaring_reverse_pop() 1153 ring->state.windex = (ring->state.windex + 1) % ring->size; in k3_ringacc_ring_push_mem() 1171 ring->state.rindex = (ring->state.rindex + 1) % ring->size; in k3_ringacc_ring_pop_mem() 1236 if (ring->ops && ring->ops->pop_head) in k3_ringacc_ring_pop() [all …]
|
/linux/drivers/gpu/drm/radeon/ |
A D | radeon_ring.c | 87 ring->ring_free_dw -= ring->wptr; in radeon_ring_free_size() 88 ring->ring_free_dw &= ring->ptr_mask; in radeon_ring_free_size() 128 ring->wptr_old = ring->wptr; in radeon_ring_alloc() 174 rdev->asic->ring[ring->idx]->hdp_flush(rdev, ring); in radeon_ring_commit() 177 radeon_ring_write(ring, ring->nop); in radeon_ring_commit() 214 ring->wptr = ring->wptr_old; in radeon_ring_undo() 329 (*data)[i] = ring->ring[ptr++]; in radeon_ring_backup() 410 (void **)&ring->ring); in radeon_ring_init() 445 ring->ring = NULL; in radeon_ring_fini() 492 ring->wptr, ring->wptr); in radeon_debugfs_ring_info_show() [all …]
|
A D | radeon_fence.c | 147 (*fence)->ring = ring; in radeon_fence_emit() 296 else if (radeon_ring_is_lockup(rdev, ring, &rdev->ring[ring])) { in radeon_fence_check_lockup() 302 fence_drv->sync_seq[ring], ring); in radeon_fence_check_lockup() 358 unsigned ring = fence->ring; in radeon_fence_is_signaled() local 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() 852 ring, rdev->fence_drv[ring].gpu_addr); in radeon_fence_driver_start_ring() 898 for (ring = 0; ring < RADEON_NUM_RINGS; ring++) { in radeon_fence_driver_init() 918 for (ring = 0; ring < RADEON_NUM_RINGS; ring++) { in radeon_fence_driver_fini() [all …]
|
A D | cik_sdma.c | 135 struct radeon_ring *ring = &rdev->ring[ib->ring]; in cik_sdma_ring_ib_execute() local 144 radeon_ring_write(ring, ring->next_rptr_gpu_addr & 0xfffffffc); in cik_sdma_ring_ib_execute() 145 radeon_ring_write(ring, upper_32_bits(ring->next_rptr_gpu_addr)); in cik_sdma_ring_ib_execute() 171 struct radeon_ring *ring = &rdev->ring[ridx]; in cik_sdma_hdp_flush_ring_emit() local 202 struct radeon_ring *ring = &rdev->ring[fence->ring]; in cik_sdma_fence_ring_emit() local 374 ring = &rdev->ring[R600_RING_TYPE_DMA_INDEX]; in cik_sdma_gfx_resume() 378 ring = &rdev->ring[CAYMAN_RING_TYPE_DMA1_INDEX]; in cik_sdma_gfx_resume() 410 ring->wptr = 0; in cik_sdma_gfx_resume() 423 ring->ready = true; in cik_sdma_gfx_resume() 425 r = radeon_ring_test(rdev, ring->idx, ring); in cik_sdma_gfx_resume() [all …]
|
A D | r600_dma.c | 51 struct radeon_ring *ring) in r600_dma_get_rptr() argument 121 struct radeon_ring *ring = &rdev->ring[R600_RING_TYPE_DMA_INDEX]; in r600_dma_resume() local 166 ring->wptr = 0; in r600_dma_resume() 171 ring->ready = true; in r600_dma_resume() 175 ring->ready = false; in r600_dma_resume() 270 ring->idx, tmp); in r600_dma_ring_test() 289 struct radeon_ring *ring = &rdev->ring[fence->ring]; in r600_dma_fence_ring_emit() local 406 struct radeon_ring *ring = &rdev->ring[ib->ring]; in r600_dma_ring_ib_execute() local 414 radeon_ring_write(ring, ring->next_rptr_gpu_addr & 0xfffffffc); in r600_dma_ring_ib_execute() 415 radeon_ring_write(ring, upper_32_bits(ring->next_rptr_gpu_addr) & 0xff); in r600_dma_ring_ib_execute() [all …]
|
A D | uvd_v1_0.c | 84 struct radeon_ring *ring = &rdev->ring[fence->ring]; in uvd_v1_0_fence_emit() local 159 struct radeon_ring *ring = &rdev->ring[R600_RING_TYPE_UVD_INDEX]; in uvd_v1_0_init() local 173 ring->ready = true; in uvd_v1_0_init() 176 ring->ready = false; in uvd_v1_0_init() 250 struct radeon_ring *ring = &rdev->ring[R600_RING_TYPE_UVD_INDEX]; in uvd_v1_0_fini() local 253 ring->ready = false; in uvd_v1_0_fini() 265 struct radeon_ring *ring = &rdev->ring[R600_RING_TYPE_UVD_INDEX]; in uvd_v1_0_start() local 431 ring->idx, r); in uvd_v1_0_ring_test() 446 ring->idx, i); in uvd_v1_0_ring_test() 449 ring->idx, tmp); in uvd_v1_0_ring_test() [all …]
|
A D | evergreen_dma.c | 43 struct radeon_ring *ring = &rdev->ring[fence->ring]; in evergreen_dma_fence_ring_emit() local 49 radeon_ring_write(ring, fence->seq); in evergreen_dma_fence_ring_emit() 55 radeon_ring_write(ring, 1); in evergreen_dma_fence_ring_emit() 69 struct radeon_ring *ring = &rdev->ring[ib->ring]; in evergreen_dma_ring_ib_execute() local 72 u32 next_rptr = ring->wptr + 4; in evergreen_dma_ring_ib_execute() 77 radeon_ring_write(ring, ring->next_rptr_gpu_addr & 0xfffffffc); in evergreen_dma_ring_ib_execute() 78 radeon_ring_write(ring, upper_32_bits(ring->next_rptr_gpu_addr) & 0xff); in evergreen_dma_ring_ib_execute() 79 radeon_ring_write(ring, next_rptr); in evergreen_dma_ring_ib_execute() 85 while ((ring->wptr & 7) != 5) in evergreen_dma_ring_ib_execute() 115 struct radeon_ring *ring = &rdev->ring[ring_index]; in evergreen_copy_dma() local [all …]
|
/linux/drivers/net/wireless/broadcom/b43legacy/ |
A D | dma.c | 119 return (ring->nr_slots - ring->used_slots); in free_slots() 169 slot = next_slot(ring, ring->current_slot); in request_slot() 173 update_max_used_slots(ring, ring->used_slots); in request_slot() 320 ring->descbase, ring->dmabase); in free_ringmemory() 495 ring->used_slots = ring->nr_slots; in alloc_initial_descbuffers() 621 ring = kzalloc(sizeof(*ring), GFP_KERNEL); in b43legacy_setup_dmaring() 622 if (!ring) in b43legacy_setup_dmaring() 717 if (!ring) in b43legacy_destroy_dmaring() 788 if (!ring) in b43legacy_dma_init() 793 if (!ring) in b43legacy_dma_init() [all …]
|
/linux/drivers/net/wireless/broadcom/b43/ |
A D | dma.c | 259 return (ring->nr_slots - ring->used_slots); in free_slots() 289 ring->tx ? "TX" : "RX", ring->index); in update_max_used_slots() 308 slot = next_slot(ring, ring->current_slot); in request_slot() 312 update_max_used_slots(ring, ring->used_slots); in request_slot() 435 ring->descbase, ring->dmabase); in free_ringmemory() 653 ring->used_slots = ring->nr_slots; in alloc_initial_descbuffers() 783 ring->ops->idx2desc(ring, i, &meta); in free_all_descbuffers() 841 ring = kzalloc(sizeof(*ring), GFP_KERNEL); in b43_setup_dmaring() 1279 ops->poke_tx(ring, next_slot(ring, slot)); in dma_tx_fragment() 1710 ring->ops->tx_suspend(ring); in b43_dma_tx_suspend_ring() [all …]
|
/linux/drivers/thunderbolt/ |
A D | nhi.c | 107 RING_TYPE(ring), ring->hop, in ring_interrupt_active() 181 return ((ring->head + 1) % ring->size) == ring->tail; in ring_full() 186 return ring->head == ring->tail; in ring_empty() 211 ring->head = (ring->head + 1) % ring->size; in ring_write_descriptors() 259 ring->tail = (ring->tail + 1) % ring->size; in ring_work() 327 ring->tail = (ring->tail + 1) % ring->size; in tb_ring_poll() 450 free_irq(ring->irq, ring); in ring_release_msix() 630 RING_TYPE(ring), ring->hop); in tb_ring_start() 668 RING_TYPE(ring), ring->hop, ring->e2e_tx_hop); in tb_ring_start() 671 RING_TYPE(ring), ring->hop); in tb_ring_start() [all …]
|
/linux/drivers/net/ethernet/apm/xgene/ |
A D | xgene_enet_ring2.c | 14 u32 *ring_cfg = ring->state; in xgene_enet_ring_init() 15 u64 addr = ring->dma; in xgene_enet_ring_init() 36 u32 *ring_cfg = ring->state; in xgene_enet_ring_set_type() 49 u32 *ring_cfg = ring->state; in xgene_enet_ring_set_recombbuf() 68 xgene_enet_ring_wr32(ring, CSR_RING_CONFIG, ring->num); in xgene_enet_write_ring_state() 71 ring->state[i]); in xgene_enet_write_ring_state() 77 memset(ring->state, 0, sizeof(ring->state)); in xgene_enet_clr_ring_state() 137 ring->slots = xgene_enet_get_numslots(ring->id, ring->size); in xgene_enet_setup_ring() 141 return ring; in xgene_enet_setup_ring() 144 xgene_enet_ring_wr32(ring, addr, ring->irq_mbox_dma >> 10); in xgene_enet_setup_ring() [all …]
|
/linux/net/rds/ |
A D | ib_ring.c | 68 memset(ring, 0, sizeof(*ring)); in rds_ib_ring_init() 69 ring->w_nr = nr; in rds_ib_ring_init() 70 rdsdebug("ring %p nr %u\n", ring, ring->w_nr); in rds_ib_ring_init() 78 diff = ring->w_alloc_ctr - (u32) atomic_read(&ring->w_free_ctr); in __rds_ib_ring_used() 89 ring->w_nr = nr; in rds_ib_ring_resize() 101 avail = ring->w_nr - __rds_ib_ring_used(ring); in rds_ib_ring_alloc() 110 ring->w_alloc_ptr = (ring->w_alloc_ptr + ret) % ring->w_nr; in rds_ib_ring_alloc() 119 ring->w_free_ptr = (ring->w_free_ptr + val) % ring->w_nr; in rds_ib_ring_free() 129 ring->w_alloc_ptr = (ring->w_alloc_ptr - val) % ring->w_nr; in rds_ib_ring_unalloc() 140 return __rds_ib_ring_used(ring) <= (ring->w_nr >> 1); in rds_ib_ring_low() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx4/ |
A D | en_tx.c | 102 ring, ring->buf, ring->size, ring->buf_size, in mlx4_en_create_tx_ring() 229 return ring->prod - ring->cons > ring->full_size; in mlx4_en_is_tx_ring_full() 369 ring->cons += ring->last_nr_txbb; in mlx4_en_free_tx_buf() 371 ring->cons, ring->prod); in mlx4_en_free_tx_buf() 373 if ((u32) (ring->prod - ring->cons) > ring->size) { in mlx4_en_free_tx_buf() 379 while (ring->cons != ring->prod) { in mlx4_en_free_tx_buf() 380 ring->last_nr_txbb = ring->free_tx_desc(priv, ring, in mlx4_en_free_tx_buf() 381 ring->cons & ring->size_mask, in mlx4_en_free_tx_buf() 1009 ((ring->prod & ring->size) ? in mlx4_en_xmit() 1028 ((ring->prod & ring->size) ? in mlx4_en_xmit() [all …]
|
/linux/tools/testing/selftests/net/ |
A D | psock_tpacket.c | 71 void (*walk)(int sock, struct ring *ring); argument 640 ring->mm_len = ring->req.tp_block_size * ring->req.tp_block_nr; in __v1_v2_fill() 661 ring->mm_len = ring->req3.tp_block_size * ring->req3.tp_block_nr; in __v3_fill() 697 ring->rd_len = ring->rd_num * sizeof(*ring->rd); in setup_ring() 698 ring->rd = malloc(ring->rd_len); in setup_ring() 719 memset(ring->rd, 0, ring->rd_len); in mmap_ring() 721 ring->rd[i].iov_base = ring->mm_space + (i * ring->flen); in mmap_ring() 722 ring->rd[i].iov_len = ring->flen; in mmap_ring() 748 ring->walk(sock, ring); in walk_ring() 805 struct ring ring; in test_tpacket() local [all …]
|
/linux/drivers/gpu/drm/i915/gt/ |
A D | intel_ring.c | 20 space = __intel_ring_space(ring->head, ring->emit, ring->size); in intel_ring_update_space() 70 intel_ring_reset(ring, ring->emit); in intel_ring_pin() 152 ring = kzalloc(sizeof(*ring), GFP_KERNEL); in intel_engine_create_ring() 153 if (!ring) in intel_engine_create_ring() 202 if (target->ring != ring) in wait_for_space() 207 ring->emit, ring->size)) in wait_for_space() 229 struct intel_ring *ring = rq->ring; in intel_ring_begin() local 243 const int remain_actual = ring->size - ring->emit; in intel_ring_begin() 288 GEM_BUG_ON(ring->emit + need_wrap > ring->size); in intel_ring_begin() 297 GEM_BUG_ON(ring->emit > ring->size - bytes); in intel_ring_begin() [all …]
|
A D | selftest_ring.c | 10 ring = kzalloc(sizeof(*ring) + sz, GFP_KERNEL); in mock_ring() 11 if (!ring) in mock_ring() 14 kref_init(&ring->ref); in mock_ring() 15 ring->size = sz; in mock_ring() 16 ring->wrap = BITS_PER_TYPE(ring->size) - ilog2(sz); in mock_ring() 18 ring->vaddr = (void *)(ring + 1); in mock_ring() 23 return ring; in mock_ring() 28 kfree(ring); in mock_ring_free() 70 err |= check_ring_step(ring, intel_ring_wrap(ring, x + 1), step); in check_ring_offset() 71 err |= check_ring_step(ring, intel_ring_wrap(ring, x - 1), step); in check_ring_offset() [all …]
|
/linux/drivers/crypto/inside-secure/ |
A D | safexcel_ring.c | 87 if ((ring->write == ring->read - ring->offset) || in safexcel_ring_next_cwptr() 88 (ring->read == ring->base && ring->write == ring->base_end)) in safexcel_ring_next_cwptr() 92 ring->write = ring->base; in safexcel_ring_next_cwptr() 93 ring->shwrite = ring->shbase; in safexcel_ring_next_cwptr() 95 ring->write += ring->offset; in safexcel_ring_next_cwptr() 111 if ((ring->write == ring->read - ring->offset) || in safexcel_ring_next_rwptr() 112 (ring->read == ring->base && ring->write == ring->base_end)) in safexcel_ring_next_rwptr() 116 ring->write = ring->base; in safexcel_ring_next_rwptr() 118 ring->write += ring->offset; in safexcel_ring_next_rwptr() 132 ring->read = ring->base; in safexcel_ring_next_rptr() [all …]
|
/linux/drivers/crypto/qat/qat_common/ |
A D | adf_transport.c | 85 ADF_MAX_INFLIGHTS(ring->ring_size, ring->msg_size)) { in adf_send_message() 90 memcpy((void *)((uintptr_t)ring->base_addr + ring->tail), msg, in adf_send_message() 93 ring->tail = adf_modulo(ring->tail + in adf_send_message() 97 ring->bank->bank_number, ring->ring_number, in adf_send_message() 108 u32 *msg = (u32 *)((uintptr_t)ring->base_addr + ring->head); in adf_handle_response() 114 ring->head = adf_modulo(ring->head + in adf_handle_response() 118 msg = (u32 *)((uintptr_t)ring->base_addr + ring->head); in adf_handle_response() 123 ring->ring_number, ring->head); in adf_handle_response() 174 ring->base_addr, ring->dma_addr); in adf_init_ring() 189 ring->bank->bank_number, ring->ring_number, in adf_init_ring() [all …]
|
/linux/drivers/gpu/drm/msm/ |
A D | msm_ringbuffer.c | 59 ring = kzalloc(sizeof(*ring), GFP_KERNEL); in msm_ringbuffer_new() 60 if (!ring) { in msm_ringbuffer_new() 65 ring->gpu = gpu; in msm_ringbuffer_new() 66 ring->id = id; in msm_ringbuffer_new() 70 gpu->aspace, &ring->bo, &ring->iova); in msm_ringbuffer_new() 80 ring->end = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2); in msm_ringbuffer_new() 81 ring->next = ring->start; in msm_ringbuffer_new() 82 ring->cur = ring->start; in msm_ringbuffer_new() 105 return ring; in msm_ringbuffer_new() 121 msm_gem_kernel_put(ring->bo, ring->gpu->aspace); in msm_ringbuffer_destroy() [all …]
|