/linux/drivers/platform/mellanox/ |
A D | mlxbf-tmfifo.c | 217 size = vring_size(vring->num, vring->align); in mlxbf_tmfifo_free_vrings() 219 vring->va, vring->dma); in mlxbf_tmfifo_free_vrings() 248 size = vring_size(vring->num, vring->align); in mlxbf_tmfifo_alloc_vrings() 290 const struct vring *vr = virtqueue_get_vring(vring->vq); in mlxbf_tmfifo_get_next_desc() 314 const struct vring *vr = virtqueue_get_vring(vring->vq); in mlxbf_tmfifo_release_desc() 336 const struct vring *vr = virtqueue_get_vring(vring->vq); in mlxbf_tmfifo_get_pkt_len() 418 const struct vring *vr = virtqueue_get_vring(vring->vq); in mlxbf_tmfifo_console_output_one() 668 vring->rem_len = vring->pkt_len; in mlxbf_tmfifo_rxtx_header() 669 fifo->vring[is_rx] = vring; in mlxbf_tmfifo_rxtx_header() 772 if (fifo->vring[is_rx] && fifo->vring[is_rx] != vring) in mlxbf_tmfifo_rxtx() [all …]
|
/linux/drivers/net/wireless/ath/wil6210/ |
A D | txrx.c | 122 vring->ctx = kcalloc(vring->size, sizeof(vring->ctx[0]), GFP_KERNEL); in wil_vring_alloc() 166 vring->va, &vring->pa, vring->ctx); in wil_vring_alloc() 200 vring_index, vring->size, vring->va, in wil_vring_free() 201 &vring->pa, vring->ctx); in wil_vring_free() 204 vring->size, vring->va, in wil_vring_free() 205 &vring->pa, vring->ctx); in wil_vring_free() 216 &vring->va[vring->swtail].tx.legacy; in wil_vring_free() 218 ctx = &vring->ctx[vring->swtail]; in wil_vring_free() 234 &vring->va[vring->swhead].rx.legacy; in wil_vring_free() 236 ctx = &vring->ctx[vring->swhead]; in wil_vring_free() [all …]
|
A D | trace.h | 215 TP_PROTO(u8 vring, u16 index, unsigned int len, u8 frags), 216 TP_ARGS(vring, index, len, frags), 218 __field(u8, vring) 224 __entry->vring = vring; 230 __entry->vring, __entry->index, __entry->len, __entry->frags) 234 TP_PROTO(u8 vring, u16 index, unsigned int len, u8 err), 235 TP_ARGS(vring, index, len, err), 237 __field(u8, vring) 243 __entry->vring = vring; 249 __entry->vring, __entry->index, __entry->len,
|
/linux/drivers/virtio/ |
A D | virtio_ring.c | 124 struct vring vring; member 152 } vring; member 934 struct vring vring; in vring_create_virtqueue_split() local 1733 vq->packed.vring.num = num; in vring_create_virtqueue_packed() 2171 struct vring vring, in __vring_new_virtqueue() argument 2217 vq->split.vring = vring; in __vring_new_virtqueue() 2292 struct vring vring; in vring_new_virtqueue() local 2333 vq->split.vring.desc, in vring_del_virtqueue() 2384 return vq->packed_ring ? vq->packed.vring.num : vq->split.vring.num; in virtqueue_get_vring_size() 2438 ((char *)vq->split.vring.avail - (char *)vq->split.vring.desc); in virtqueue_get_avail_addr() [all …]
|
/linux/drivers/vdpa/ifcvf/ |
A D | ifcvf_main.c | 34 if (vring->cb.callback) in ifcvf_intr_handler() 35 return vring->cb.callback(vring->cb.private); in ifcvf_intr_handler() 53 devm_free_irq(&pdev->dev, vf->vring[i].irq, &vf->vring[i]); in ifcvf_free_irq() 54 vf->vring[i].irq = -EINVAL; in ifcvf_free_irq() 98 &vf->vring[i]); in ifcvf_request_irq() 107 vf->vring[i].irq = irq; in ifcvf_request_irq() 149 vf->vring[i].desc = 0; in ifcvf_reset_vring() 150 vf->vring[i].avail = 0; in ifcvf_reset_vring() 151 vf->vring[i].used = 0; in ifcvf_reset_vring() 152 vf->vring[i].ready = 0; in ifcvf_reset_vring() [all …]
|
A D | ifcvf_base.c | 166 hw->vring[i].notify_addr = hw->notify_base + in ifcvf_init_hw() 168 hw->vring[i].notify_pa = hw->notify_base_pa + in ifcvf_init_hw() 325 hw->vring[qid].last_avail_idx = num; in ifcvf_set_vq_state() 347 if (!hw->vring[i].ready) in ifcvf_hw_enable() 351 ifc_iowrite64_twopart(hw->vring[i].desc, &cfg->queue_desc_lo, in ifcvf_hw_enable() 353 ifc_iowrite64_twopart(hw->vring[i].avail, &cfg->queue_avail_lo, in ifcvf_hw_enable() 355 ifc_iowrite64_twopart(hw->vring[i].used, &cfg->queue_used_lo, in ifcvf_hw_enable() 357 ifc_iowrite16(hw->vring[i].size, &cfg->queue_size); in ifcvf_hw_enable() 367 ifcvf_set_vq_state(hw, i, hw->vring[i].last_avail_idx); in ifcvf_hw_enable() 415 ifc_iowrite16(qid, hw->vring[qid].notify_addr); in ifcvf_notify_queue()
|
/linux/drivers/vdpa/virtio_pci/ |
A D | vp_vdpa.c | 36 struct vp_vring *vring; member 82 int irq = vp_vdpa->vring[idx].irq; in vp_vdpa_get_vq_irq() 100 &vp_vdpa->vring[i]); in vp_vdpa_free_irq() 119 struct vp_vring *vring = arg; in vp_vdpa_vq_handler() local 121 if (vring->cb.callback) in vp_vdpa_vq_handler() 122 return vring->cb.callback(vring->cb.private); in vp_vdpa_vq_handler() 162 &vp_vdpa->vring[i]); in vp_vdpa_request_irq() 169 vp_vdpa->vring[i].irq = irq; in vp_vdpa_request_irq() 285 vp_vdpa->vring[qid].cb = *cb; in vp_vdpa_set_vq_cb() 492 if (!vp_vdpa->vring) { in vp_vdpa_probe() [all …]
|
/linux/drivers/vdpa/alibaba/ |
A D | eni_vdpa.c | 41 struct eni_vring *vring; member 97 int irq = eni_vdpa->vring[idx].irq; in eni_vdpa_get_vq_irq() 115 &eni_vdpa->vring[i]); in eni_vdpa_free_irq() 134 struct eni_vring *vring = arg; in eni_vdpa_vq_handler() local 136 if (vring->cb.callback) in eni_vdpa_vq_handler() 137 return vring->cb.callback(vring->cb.private); in eni_vdpa_vq_handler() 177 &eni_vdpa->vring[i]); in eni_vdpa_request_irq() 183 eni_vdpa->vring[i].irq = irq; in eni_vdpa_request_irq() 279 eni_vdpa->vring[qid].cb = *cb; in eni_vdpa_set_vq_cb() 499 sizeof(*eni_vdpa->vring), in eni_vdpa_probe() [all …]
|
/linux/drivers/vdpa/vdpa_sim/ |
A D | vdpa_sim_net.c | 53 err = vringh_getdesc_iotlb(&txq->vring, &txq->out_iov, NULL, in vdpasim_net_work() 58 err = vringh_getdesc_iotlb(&rxq->vring, NULL, &rxq->in_iov, in vdpasim_net_work() 61 vringh_complete_iotlb(&txq->vring, txq->head, 0); in vdpasim_net_work() 66 read = vringh_iov_pull_iotlb(&txq->vring, &txq->out_iov, in vdpasim_net_work() 72 write = vringh_iov_push_iotlb(&rxq->vring, &rxq->in_iov, in vdpasim_net_work() 83 vringh_complete_iotlb(&txq->vring, txq->head, 0); in vdpasim_net_work() 84 vringh_complete_iotlb(&rxq->vring, rxq->head, total_write); in vdpasim_net_work() 90 if (vringh_need_notify_iotlb(&txq->vring) > 0) in vdpasim_net_work() 91 vringh_notify(&txq->vring); in vdpasim_net_work() 92 if (vringh_need_notify_iotlb(&rxq->vring) > 0) in vdpasim_net_work() [all …]
|
A D | vdpa_sim_blk.c | 73 ret = vringh_getdesc_iotlb(&vq->vring, &vq->out_iov, &vq->in_iov, in vdpasim_blk_handle_req() 96 bytes = vringh_iov_pull_iotlb(&vq->vring, &vq->out_iov, &hdr, in vdpasim_blk_handle_req() 120 bytes = vringh_iov_push_iotlb(&vq->vring, &vq->in_iov, in vdpasim_blk_handle_req() 143 bytes = vringh_iov_pull_iotlb(&vq->vring, &vq->out_iov, in vdpasim_blk_handle_req() 156 bytes = vringh_iov_push_iotlb(&vq->vring, &vq->in_iov, in vdpasim_blk_handle_req() 183 bytes = vringh_iov_push_iotlb(&vq->vring, &vq->in_iov, &status, 1); in vdpasim_blk_handle_req() 192 vringh_complete_iotlb(&vq->vring, vq->head, pushed); in vdpasim_blk_handle_req() 218 if (vringh_need_notify_iotlb(&vq->vring) > 0) in vdpasim_blk_work() 219 vringh_notify(&vq->vring); in vdpasim_blk_work()
|
A D | vdpa_sim.c | 54 static void vdpasim_vq_notify(struct vringh *vring) in vdpasim_vq_notify() argument 57 container_of(vring, struct vdpasim_virtqueue, vring); in vdpasim_vq_notify() 69 vringh_init_iotlb(&vq->vring, vdpasim->dev_attr.supported_features, in vdpasim_queue_ready() 77 vq->vring.notify = vdpasim_vq_notify; in vdpasim_queue_ready() 89 vringh_init_iotlb(&vq->vring, vdpasim->dev_attr.supported_features, in vdpasim_vq_reset() 92 vq->vring.notify = NULL; in vdpasim_vq_reset() 290 vringh_set_iotlb(&vdpasim->vqs[i].vring, vdpasim->iommu, in vdpasim_create() 377 struct vringh *vrh = &vq->vring; in vdpasim_set_vq_state() 391 struct vringh *vrh = &vq->vring; in vdpasim_get_vq_state()
|
/linux/drivers/vhost/ |
A D | vringh.c | 49 &vrh->vring.avail->idx); in __vringh_get_head() 54 return vrh->vring.num; in __vringh_get_head() 70 head, vrh->vring.num); in __vringh_get_head() 241 *descs = vrh->vring.desc; in return_from_indirect() 301 descs = vrh->vring.desc; in __vringh_iov() 302 desc_max = vrh->vring.num; in __vringh_iov() 658 vrh->vring.num = num; in vringh_init_user() 696 *head = vrh->vring.num; in vringh_getdesc_user() 932 vrh->vring.num = num; in vringh_init_kern() 933 vrh->vring.desc = desc; in vringh_init_kern() [all …]
|
/linux/tools/virtio/ |
A D | vringh_test.c | 116 err = get_user(avail_idx, &vrh->vring.avail->idx); in vringh_get_head() 126 i = vrh->last_avail_idx & (vrh->vring.num - 1); in vringh_get_head() 128 err = get_user(*head, &vrh->vring.avail->ring[i]); in vringh_get_head() 190 vrh.vring.desc, vrh.vring.avail, vrh.vring.used); in parallel_test() 494 vrh.vring.desc, vrh.vring.avail, vrh.vring.used); in main() 650 assert(vrh.vring.used->idx % RINGSIZE != 0); in main() 665 struct vring vring; in main() local 688 assert(vring.desc[0].addr == (unsigned long)d); in main() 692 vring.desc[0].flags |= VRING_DESC_F_INDIRECT; in main() 693 vring.desc[1].flags |= VRING_DESC_F_INDIRECT; in main() [all …]
|
A D | virtio_test.c | 34 struct vring vring; member 75 .desc_user_addr = (uint64_t)(unsigned long)info->vring.desc, in vhost_vq_setup() 76 .avail_user_addr = (uint64_t)(unsigned long)info->vring.avail, in vhost_vq_setup() 77 .used_user_addr = (uint64_t)(unsigned long)info->vring.used, in vhost_vq_setup() 82 state.num = info->vring.num; in vhost_vq_setup() 104 vring_init(&info->vring, num, info->ring, 4096); in vq_reset() 105 info->vq = __vring_new_virtqueue(info->idx, info->vring, vdev, true, in vq_reset() 192 batch = (random() % vq->vring.num) + 1; in run_test() 235 vq_reset(vq, vq->vring.num, &dev->vdev); in run_test()
|
/linux/arch/arm/boot/dts/ |
A D | keystone-k2hk.dtsi | 167 interrupt-names = "vring", "exception"; 183 interrupt-names = "vring", "exception"; 199 interrupt-names = "vring", "exception"; 215 interrupt-names = "vring", "exception"; 231 interrupt-names = "vring", "exception"; 247 interrupt-names = "vring", "exception"; 263 interrupt-names = "vring", "exception"; 279 interrupt-names = "vring", "exception";
|
A D | keystone-k2l.dtsi | 337 interrupt-names = "vring", "exception"; 353 interrupt-names = "vring", "exception"; 369 interrupt-names = "vring", "exception"; 385 interrupt-names = "vring", "exception";
|
/linux/drivers/remoteproc/ |
A D | remoteproc_core.c | 350 size, rsc->vring[i].da, in rproc_alloc_vring() 382 rsc->vring[i].notifyid = notifyid; in rproc_alloc_vring() 391 struct fw_rsc_vdev_vring *vring = &rsc->vring[i]; in rproc_parse_vring() local 395 i, vring->da, vring->num, vring->align); in rproc_parse_vring() 398 if (!vring->num || !vring->align) { in rproc_parse_vring() 400 vring->num, vring->align); in rproc_parse_vring() 404 rvring->len = vring->num; in rproc_parse_vring() 405 rvring->align = vring->align; in rproc_parse_vring() 432 rsc->vring[idx].da = 0; in rproc_free_vring() 433 rsc->vring[idx].notifyid = -1; in rproc_free_vring() [all …]
|
A D | remoteproc_virtio.c | 93 if (id >= ARRAY_SIZE(rvdev->vring)) in rp_find_vq() 105 rvring = &rvdev->vring[id]; in rp_find_vq() 133 rsc->vring[id].da = mem->da; in rp_find_vq() 271 cfg = &rsc->vring[rsc->num_of_vrings]; in rproc_virtio_get() 289 cfg = &rsc->vring[rsc->num_of_vrings]; in rproc_virtio_set()
|
A D | remoteproc_debugfs.c | 341 seq_printf(seq, " Device Address 0x%x\n", v->vring[j].da); in rproc_rsc_table_show() 342 seq_printf(seq, " Alignment %d\n", v->vring[j].align); in rproc_rsc_table_show() 343 seq_printf(seq, " Number of buffers %d\n", v->vring[j].num); in rproc_rsc_table_show() 344 seq_printf(seq, " Notify ID %d\n", v->vring[j].notifyid); in rproc_rsc_table_show() 346 v->vring[j].pa); in rproc_rsc_table_show()
|
A D | ingenic_rproc.c | 156 u32 vring; in vpu_interrupt() local 158 vring = readl(vpu->aux_base + REG_AUX_MSG); in vpu_interrupt() 163 return rproc_vq_interrupt(rproc, vring); in vpu_interrupt()
|
/linux/include/linux/ |
A D | virtio_ring.h | 81 struct vring vring,
|
A D | remoteproc.h | 311 struct fw_rsc_vdev_vring vring[]; member 636 struct rproc_vring vring[RVDEV_NUM_VRINGS]; member
|
/linux/include/uapi/linux/ |
A D | virtio_ring.h | 152 struct vring { struct 193 static inline void vring_init(struct vring *vr, unsigned int num, void *p, in vring_init()
|
/linux/Documentation/devicetree/bindings/remoteproc/ |
A D | ti,keystone-rproc.txt | 63 "vring" - interrupt for virtio based IPC 139 interrupt-names = "vring", "exception"; 178 interrupt-names = "vring", "exception";
|
/linux/drivers/vdpa/mlx5/net/ |
A D | mlx5_vnet.c | 1620 err = vringh_getdesc_iotlb(&cvq->vring, &cvq->riov, &cvq->wiov, &cvq->head, in mlx5_cvq_kick_handler() 1625 read = vringh_iov_pull_iotlb(&cvq->vring, &cvq->riov, &ctrl, sizeof(ctrl)); in mlx5_cvq_kick_handler() 1645 vringh_complete_iotlb(&cvq->vring, cvq->head, write); in mlx5_cvq_kick_handler() 1649 if (vringh_need_notify_iotlb(&cvq->vring)) in mlx5_cvq_kick_handler() 1650 vringh_notify(&cvq->vring); in mlx5_cvq_kick_handler() 1732 static void mlx5_cvq_notify(struct vringh *vring) in mlx5_cvq_notify() argument 1734 struct mlx5_control_vq *cvq = container_of(vring, struct mlx5_control_vq, vring); in mlx5_cvq_notify() 1750 cvq->vring.notify = mlx5_cvq_notify; in set_cvq_ready() 1802 mvdev->cvq.vring.last_avail_idx = state->split.avail_index; in mlx5_vdpa_set_vq_state() 1829 state->split.avail_index = mvdev->cvq.vring.last_avail_idx; in mlx5_vdpa_get_vq_state() [all …]
|