Home
last modified time | relevance | path

Searched full:vring (Results 1 – 25 of 70) sorted by relevance

123

/OK3568_Linux_fs/kernel/drivers/platform/mellanox/
H A Dmlxbf-tmfifo.c26 /* Vring size. */
63 * @num: vring size (number of descriptors)
64 * @align: vring alignment size
65 * @index: vring index
66 * @vdev_id: vring virtio id (VIRTIO_ID_xxx)
151 * @vring: Tx/Rx ring
166 struct mlxbf_tmfifo_vring *vring[2]; member
211 struct mlxbf_tmfifo_vring *vring; in mlxbf_tmfifo_free_vrings() local
215 vring = &tm_vdev->vrings[i]; in mlxbf_tmfifo_free_vrings()
216 if (vring->va) { in mlxbf_tmfifo_free_vrings()
[all …]
/OK3568_Linux_fs/kernel/drivers/net/wireless/ath/wil6210/
H A Dtxrx.c71 struct wil_ring *vring = &wil->ring_tx[i]; in wil_is_tx_idle() local
72 int vring_index = vring - wil->ring_tx; in wil_is_tx_idle()
78 if (!vring->va || !txdata->enabled) { in wil_is_tx_idle()
86 while (!wil_ring_is_empty(vring)) { in wil_is_tx_idle()
94 "tx vring is not empty -> NAPI\n"); in wil_is_tx_idle()
99 if (!vring->va || !txdata->enabled) in wil_is_tx_idle()
110 static int wil_vring_alloc(struct wil6210_priv *wil, struct wil_ring *vring) in wil_vring_alloc() argument
113 size_t sz = vring->size * sizeof(vring->va[0]); in wil_vring_alloc()
118 BUILD_BUG_ON(sizeof(vring->va[0]) != 32); in wil_vring_alloc()
120 vring->swhead = 0; in wil_vring_alloc()
[all …]
H A Dtrace.h215 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;
229 TP_printk("vring %d index %d len %d frags %d",
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;
[all …]
/OK3568_Linux_fs/kernel/drivers/vdpa/ifcvf/
H A Difcvf_main.c33 struct vring_info *vring = arg; in ifcvf_intr_handler() local
35 if (vring->cb.callback) in ifcvf_intr_handler()
36 return vring->cb.callback(vring->cb.private); in ifcvf_intr_handler()
54 devm_free_irq(&pdev->dev, vf->vring[i].irq, &vf->vring[i]); in ifcvf_free_irq()
55 vf->vring[i].irq = -EINVAL; in ifcvf_free_irq()
88 snprintf(vf->vring[i].msix_name, 256, "ifcvf[%s]-%d\n", in ifcvf_request_irq()
94 vf->vring[i].msix_name, in ifcvf_request_irq()
95 &vf->vring[i]); in ifcvf_request_irq()
104 vf->vring[i].irq = irq; in ifcvf_request_irq()
133 vf->vring[i].cb.callback = NULL; in ifcvf_stop_datapath()
[all …]
H A Difcvf_base.c162 hw->vring[i].notify_addr = hw->notify_base + in ifcvf_init_hw()
299 hw->vring[qid].last_avail_idx = num; in ifcvf_set_vq_state()
321 if (!hw->vring[i].ready) in ifcvf_hw_enable()
325 ifc_iowrite64_twopart(hw->vring[i].desc, &cfg->queue_desc_lo, in ifcvf_hw_enable()
327 ifc_iowrite64_twopart(hw->vring[i].avail, &cfg->queue_avail_lo, in ifcvf_hw_enable()
329 ifc_iowrite64_twopart(hw->vring[i].used, &cfg->queue_used_lo, in ifcvf_hw_enable()
331 ifc_iowrite16(hw->vring[i].size, &cfg->queue_size); in ifcvf_hw_enable()
341 ifcvf_set_vq_state(hw, i, hw->vring[i].last_avail_idx); in ifcvf_hw_enable()
389 ifc_iowrite16(qid, hw->vring[qid].notify_addr); in ifcvf_notify_queue()
/OK3568_Linux_fs/kernel/drivers/vhost/
H A Dvringh.c37 /* Returns vring->num if empty, -ve on error. */
46 err = getu16(vrh, &avail_idx, &vrh->vring.avail->idx); in __vringh_get_head()
49 &vrh->vring.avail->idx); in __vringh_get_head()
54 return vrh->vring.num; in __vringh_get_head()
59 i = *last_avail_idx & (vrh->vring.num - 1); in __vringh_get_head()
61 err = getu16(vrh, &head, &vrh->vring.avail->ring[i]); in __vringh_get_head()
64 *last_avail_idx, &vrh->vring.avail->ring[i]); in __vringh_get_head()
68 if (head >= vrh->vring.num) { in __vringh_get_head()
70 head, vrh->vring.num); in __vringh_get_head()
223 *descs = vrh->vring.desc; in return_from_indirect()
[all …]
/OK3568_Linux_fs/kernel/drivers/virtio/
H A Dvirtio_ring.c120 struct vring vring; member
147 } vring; member
316 * making all of the arch DMA ops work on the vring device itself
451 WARN_ON_ONCE(total_sg > vq->split.vring.num && !vq->indirect); in virtqueue_add_split()
462 desc = vq->split.vring.desc; in virtqueue_add_split()
518 vq->split.vring.desc[head].flags = cpu_to_virtio16(_vq->vdev, in virtqueue_add_split()
520 vq->split.vring.desc[head].addr = cpu_to_virtio64(_vq->vdev, in virtqueue_add_split()
523 vq->split.vring.desc[head].len = cpu_to_virtio32(_vq->vdev, in virtqueue_add_split()
533 vq->split.vring.desc[head].next); in virtqueue_add_split()
546 avail = vq->split.avail_idx_shadow & (vq->split.vring.num - 1); in virtqueue_add_split()
[all …]
/OK3568_Linux_fs/kernel/tools/virtio/
H A Dvringh_test.c116 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()
188 vring_init(&vrh.vring, RINGSIZE, host_map, ALIGN); in parallel_test()
190 vrh.vring.desc, vrh.vring.avail, vrh.vring.used); in parallel_test()
492 vring_init(&vrh.vring, RINGSIZE, __user_addr_min, ALIGN); in main()
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
685 vring_init(&vring, RINGSIZE, __user_addr_min, ALIGN); in main()
[all …]
H A Dvirtio_test.c34 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()
193 batch = (random() % vq->vring.num) + 1; in run_test()
236 vq_reset(vq, vq->vring.num, &dev->vdev); in run_test()
/OK3568_Linux_fs/kernel/include/linux/
H A Dvringh.h3 * Linux host-side vring helpers; for when the kernel needs to access
4 * someone else's vring.
43 /* The vring (note: it may contain user pointers!) */
44 struct vring vring; member
46 /* IOTLB for this vring */
54 * struct vringh_config_ops - ops for creating a host vring from a virtio driver
59 * callbacks: array of driver callbacks, for each host vring
72 /* The memory the vring can access, and what offset to apply. */
H A Dremoteproc.h242 * struct fw_rsc_vdev_vring - vring descriptor entry
244 * @align: the alignment between the consumer and producer parts of the vring
245 * @num: num of buffers supported by this vring (must be power of two)
246 * @notifyid is a unique rproc-wide notify index for this vring. This notify
248 * vring is triggered.
255 * the remote processor is expecting the vring, or indicate that
256 * dynamically allocation of the vring's device address is supported.
280 * @vring is an array of @num_of_vrings entries of 'struct fw_rsc_vdev_vring'.
310 struct fw_rsc_vdev_vring vring[]; member
583 * struct rproc_vring - remoteproc vring state
[all …]
/OK3568_Linux_fs/kernel/arch/arm/boot/dts/
H A Dkeystone-k2hk.dtsi167 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";
/OK3568_Linux_fs/kernel/drivers/vdpa/vdpa_sim/
H A Dvdpa_sim.c48 struct vringh vring; member
134 vringh_init_iotlb(&vq->vring, vdpasim_features, in vdpasim_queue_ready()
151 vringh_init_iotlb(&vq->vring, vdpasim_features, VDPASIM_QUEUE_MAX, in vdpasim_vq_reset()
192 err = vringh_getdesc_iotlb(&txq->vring, &txq->iov, NULL, in vdpasim_work()
197 err = vringh_getdesc_iotlb(&rxq->vring, NULL, &rxq->iov, in vdpasim_work()
200 vringh_complete_iotlb(&txq->vring, txq->head, 0); in vdpasim_work()
205 read = vringh_iov_pull_iotlb(&txq->vring, &txq->iov, in vdpasim_work()
211 write = vringh_iov_push_iotlb(&rxq->vring, &rxq->iov, in vdpasim_work()
222 vringh_complete_iotlb(&txq->vring, txq->head, 0); in vdpasim_work()
223 vringh_complete_iotlb(&rxq->vring, rxq->head, total_write); in vdpasim_work()
[all …]
/OK3568_Linux_fs/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc/usr/include/linux/
H A Dmic_common.h123 * The alignment to use between consumer and producer parts of vring.
132 * Max vring entries (power of 2) to ensure desc and avail rings
147 * struct _mic_vring_info - Host vring info exposed to userspace backend
159 * struct mic_vring - Vring information.
162 * @info: Host vring information exposed to the userspace backend for the
168 struct vring vr;
H A Dvirtio_ring.h95 struct vring { struct
105 /* Alignment requirements for vring elements. argument
115 * struct vring
141 static __inline__ void vring_init(struct vring *vr, unsigned int num, void *p, in vring_init()
/OK3568_Linux_fs/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/include/linux/
H A Dmic_common.h123 * The alignment to use between consumer and producer parts of vring.
132 * Max vring entries (power of 2) to ensure desc and avail rings
147 * struct _mic_vring_info - Host vring info exposed to userspace backend
159 * struct mic_vring - Vring information.
162 * @info: Host vring information exposed to the userspace backend for the
168 struct vring vr;
H A Dvirtio_ring.h95 struct vring { struct
105 /* Alignment requirements for vring elements. argument
115 * struct vring
141 static __inline__ void vring_init(struct vring *vr, unsigned int num, void *p, in vring_init()
/OK3568_Linux_fs/kernel/drivers/remoteproc/
H A Dremoteproc_virtio.c81 if (id >= ARRAY_SIZE(rvdev->vring)) in rp_find_vq()
93 rvring = &rvdev->vring[id]; in rp_find_vq()
97 /* zero vring */ in rp_find_vq()
101 dev_dbg(dev, "vring%d: va %pK qsz %d notifyid %d\n", in rp_find_vq()
119 /* Update vring in resource table */ in rp_find_vq()
121 rsc->vring[id].da = mem->da; in rp_find_vq()
259 cfg = &rsc->vring[rsc->num_of_vrings]; in rproc_virtio_get()
277 cfg = &rsc->vring[rsc->num_of_vrings]; in rproc_virtio_set()
413 /* Reference the vdev and vring allocations */ in rproc_add_virtio_dev()
H A Dremoteproc_core.c330 struct rproc_vring *rvring = &rvdev->vring[i]; in rproc_alloc_vring()
336 /* actual size of vring (in bytes) */ in rproc_alloc_vring()
345 if (rproc_check_carveout_da(rproc, mem, rsc->vring[i].da, size)) in rproc_alloc_vring()
350 size, rsc->vring[i].da, in rproc_alloc_vring()
364 * Assign an rproc-wide unique index for this vring in rproc_alloc_vring()
381 /* Let the rproc know the notifyid of this vring.*/ 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
392 struct rproc_vring *rvring = &rvdev->vring[i]; in rproc_parse_vring()
394 dev_dbg(dev, "vdev rsc: vring%d: da 0x%x, qsz %d, align %d\n", in rproc_parse_vring()
[all …]
H A Dremoteproc_debugfs.c340 seq_printf(seq, " Vring %d\n", j); in rproc_rsc_table_show()
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()
H A Dkeystone_remoteproc.c50 * @irq_ring: irq entry for vring
122 * driver's workqueue. The workqueue is scheduled by the vring ISR handler.
151 * Interrupt handler for processing vring kicks from remote processor
179 dev_err(ksproc->dev, "failed to enable vring interrupt, ret = %d\n", in keystone_rproc_start()
424 ksproc->irq_ring = platform_get_irq_byname(pdev, "vring"); in keystone_rproc_probe()
H A Dingenic_rproc.c151 u32 vring; in vpu_interrupt() local
153 vring = readl(vpu->aux_base + REG_AUX_MSG); in vpu_interrupt()
158 return rproc_vq_interrupt(rproc, vring); in vpu_interrupt()
/OK3568_Linux_fs/kernel/drivers/rpmsg/
H A Drockchip_rpmsg.c36 unsigned int vring[2]; member
141 rpvq->vring_addr = (__force void *) ioremap(rpvdev->vring[index], RPMSG_VRING_SIZE); in rk_rpmsg_find_vq()
146 dev_dbg(dev, "vring%d: phys 0x%x, virt 0x%p\n", index, in rk_rpmsg_find_vq()
147 rpvdev->vring[index], rpvq->vring_addr); in rk_rpmsg_find_vq()
282 rpdev->rpvdev[i]->vring[0] = start; in rk_set_vring_phy_buf()
283 rpdev->rpvdev[i]->vring[1] = start + RPMSG_VRING_SIZE; in rk_set_vring_phy_buf()
349 dev_err(dev, "No vring buffer.\n"); in rockchip_rpmsg_probe()
362 i, rpdev->rpvdev[i]->vring[0], rpdev->rpvdev[i]->vring[1]); in rockchip_rpmsg_probe()
/OK3568_Linux_fs/kernel/include/uapi/linux/
H A Dvirtio_ring.h89 /* Alignment requirements for vring elements.
152 struct vring { struct
167 * struct vring argument
193 static inline void vring_init(struct vring *vr, unsigned int num, void *p, in vring_init()
/OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/remoteproc/
H A Dti,keystone-rproc.txt63 "vring" - interrupt for virtio based IPC
139 interrupt-names = "vring", "exception";
178 interrupt-names = "vring", "exception";

123