Lines Matching refs:ring
199 static unsigned int vnic_dev_desc_ring_size(struct vnic_dev_ring *ring, in vnic_dev_desc_ring_size() argument
211 ring->base_align = 512; in vnic_dev_desc_ring_size()
216 ring->desc_count = ALIGN(desc_count, count_align); in vnic_dev_desc_ring_size()
218 ring->desc_size = ALIGN(desc_size, desc_align); in vnic_dev_desc_ring_size()
220 ring->size = ring->desc_count * ring->desc_size; in vnic_dev_desc_ring_size()
221 ring->size_unaligned = ring->size + ring->base_align; in vnic_dev_desc_ring_size()
223 return ring->size_unaligned; in vnic_dev_desc_ring_size()
226 void vnic_dev_clear_desc_ring(struct vnic_dev_ring *ring) in vnic_dev_clear_desc_ring() argument
228 memset(ring->descs, 0, ring->size); in vnic_dev_clear_desc_ring()
231 int vnic_dev_alloc_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring, in vnic_dev_alloc_desc_ring() argument
234 vnic_dev_desc_ring_size(ring, desc_count, desc_size); in vnic_dev_alloc_desc_ring()
236 ring->descs_unaligned = pci_alloc_consistent(vdev->pdev, in vnic_dev_alloc_desc_ring()
237 ring->size_unaligned, in vnic_dev_alloc_desc_ring()
238 &ring->base_addr_unaligned); in vnic_dev_alloc_desc_ring()
240 if (!ring->descs_unaligned) { in vnic_dev_alloc_desc_ring()
242 (int)ring->size); in vnic_dev_alloc_desc_ring()
246 ring->base_addr = ALIGN(ring->base_addr_unaligned, in vnic_dev_alloc_desc_ring()
247 ring->base_align); in vnic_dev_alloc_desc_ring()
248 ring->descs = (u8 *)ring->descs_unaligned + in vnic_dev_alloc_desc_ring()
249 (ring->base_addr - ring->base_addr_unaligned); in vnic_dev_alloc_desc_ring()
251 vnic_dev_clear_desc_ring(ring); in vnic_dev_alloc_desc_ring()
253 ring->desc_avail = ring->desc_count - 1; in vnic_dev_alloc_desc_ring()
258 void vnic_dev_free_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring) in vnic_dev_free_desc_ring() argument
260 if (ring->descs) { in vnic_dev_free_desc_ring()
262 ring->size_unaligned, in vnic_dev_free_desc_ring()
263 ring->descs_unaligned, in vnic_dev_free_desc_ring()
264 ring->base_addr_unaligned); in vnic_dev_free_desc_ring()
265 ring->descs = NULL; in vnic_dev_free_desc_ring()