Lines Matching refs:ring
190 unsigned int svnic_dev_desc_ring_size(struct vnic_dev_ring *ring, in svnic_dev_desc_ring_size() argument
203 ring->base_align = 512; in svnic_dev_desc_ring_size()
208 ring->desc_count = ALIGN(desc_count, count_align); in svnic_dev_desc_ring_size()
210 ring->desc_size = ALIGN(desc_size, desc_align); in svnic_dev_desc_ring_size()
212 ring->size = ring->desc_count * ring->desc_size; in svnic_dev_desc_ring_size()
213 ring->size_unaligned = ring->size + ring->base_align; in svnic_dev_desc_ring_size()
215 return ring->size_unaligned; in svnic_dev_desc_ring_size()
218 void svnic_dev_clear_desc_ring(struct vnic_dev_ring *ring) in svnic_dev_clear_desc_ring() argument
220 memset(ring->descs, 0, ring->size); in svnic_dev_clear_desc_ring()
223 int svnic_dev_alloc_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring, in svnic_dev_alloc_desc_ring() argument
226 svnic_dev_desc_ring_size(ring, desc_count, desc_size); in svnic_dev_alloc_desc_ring()
228 ring->descs_unaligned = pci_alloc_consistent(vdev->pdev, in svnic_dev_alloc_desc_ring()
229 ring->size_unaligned, in svnic_dev_alloc_desc_ring()
230 &ring->base_addr_unaligned); in svnic_dev_alloc_desc_ring()
232 if (!ring->descs_unaligned) { in svnic_dev_alloc_desc_ring()
234 (int)ring->size); in svnic_dev_alloc_desc_ring()
239 ring->base_addr = ALIGN(ring->base_addr_unaligned, in svnic_dev_alloc_desc_ring()
240 ring->base_align); in svnic_dev_alloc_desc_ring()
241 ring->descs = (u8 *)ring->descs_unaligned + in svnic_dev_alloc_desc_ring()
242 (ring->base_addr - ring->base_addr_unaligned); in svnic_dev_alloc_desc_ring()
244 svnic_dev_clear_desc_ring(ring); in svnic_dev_alloc_desc_ring()
246 ring->desc_avail = ring->desc_count - 1; in svnic_dev_alloc_desc_ring()
251 void svnic_dev_free_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring) in svnic_dev_free_desc_ring() argument
253 if (ring->descs) { in svnic_dev_free_desc_ring()
255 ring->size_unaligned, in svnic_dev_free_desc_ring()
256 ring->descs_unaligned, in svnic_dev_free_desc_ring()
257 ring->base_addr_unaligned); in svnic_dev_free_desc_ring()
258 ring->descs = NULL; in svnic_dev_free_desc_ring()
391 dc2c->cmd_ring = (struct vnic_devcmd2 *) dc2c->wq.ring.descs; in svnic_dev_init_devcmd2()