Lines Matching refs:dr

89 static inline u32 vdc_tx_dring_avail(struct vio_dring_state *dr)
91 return vio_dring_avail(dr, VDC_TX_RING_SIZE);
215 static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr,
218 struct vio_disk_desc *desc = vio_dring_entry(dr, index);
227 dr->cons = (index + 1) & (VDC_TX_RING_SIZE - 1);
245 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
248 if (unlikely(pkt->dring_ident != dr->ident ||
253 vdc_end_one(port, dr, pkt->start_idx);
332 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
340 .dring_ident = dr->ident,
341 .start_idx = dr->prod,
342 .end_idx = dr->prod,
346 hdr.seq = dr->snd_nxt;
351 dr->snd_nxt++;
365 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
391 if (unlikely(vdc_tx_dring_avail(dr) < 1)) {
397 desc = vio_dring_cur(dr);
407 rqe = &port->rq_arr[dr->prod];
434 dr->prod = (dr->prod + 1) & (VDC_TX_RING_SIZE - 1);
456 struct vio_dring_state *dr;
539 dr = &port->vio.drings[VIO_DRIVER_TX_RING];
544 desc = vio_dring_cur(dr);
577 dr->prod = (dr->prod + 1) & (VDC_TX_RING_SIZE - 1);
597 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
608 dr->cookies, &ncookies,
615 dr->base = dring;
616 dr->entry_size = entry_size;
617 dr->num_entries = VDC_TX_RING_SIZE;
618 dr->prod = dr->cons = 0;
619 dr->pending = VDC_TX_RING_SIZE;
620 dr->ncookies = ncookies;
627 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
629 if (dr->base) {
630 ldc_free_exp_dring(port->vio.lp, dr->base,
631 (dr->entry_size * dr->num_entries),
632 dr->cookies, dr->ncookies);
633 dr->base = NULL;
634 dr->entry_size = 0;
635 dr->num_entries = 0;
636 dr->pending = 0;
637 dr->ncookies = 0;