Lines Matching refs:dr
117 static inline u32 vdc_tx_dring_avail(struct vio_dring_state *dr)
119 return vio_dring_avail(dr, VDC_TX_RING_SIZE);
181 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
187 if (port->disk && vdc_tx_dring_avail(dr) * 100 / VDC_TX_RING_SIZE >= 50)
307 static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr,
310 struct vio_disk_desc *desc = vio_dring_entry(dr, index);
319 dr->cons = vio_dring_next(dr, index);
336 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
339 if (unlikely(pkt->dring_ident != dr->ident ||
344 vdc_end_one(port, dr, pkt->start_idx);
427 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
435 .dring_ident = dr->ident,
436 .start_idx = dr->prod,
437 .end_idx = dr->prod,
442 hdr.seq = dr->snd_nxt;
447 dr->snd_nxt++;
465 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
494 desc = vio_dring_cur(dr);
504 rqe = &port->rq_arr[dr->prod];
531 dr->prod = vio_dring_next(dr, dr->prod);
541 struct vio_dring_state *dr;
544 dr = &port->vio.drings[VIO_DRIVER_TX_RING];
558 if (unlikely(vdc_tx_dring_avail(dr) < 1)) {
575 struct vio_dring_state *dr;
657 dr = &port->vio.drings[VIO_DRIVER_TX_RING];
662 desc = vio_dring_cur(dr);
695 dr->prod = vio_dring_next(dr, dr->prod);
715 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
726 dr->cookies, &ncookies,
733 dr->base = dring;
734 dr->entry_size = entry_size;
735 dr->num_entries = VDC_TX_RING_SIZE;
736 dr->prod = dr->cons = 0;
737 dr->pending = VDC_TX_RING_SIZE;
738 dr->ncookies = ncookies;
745 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
747 if (dr->base) {
748 ldc_free_exp_dring(port->vio.lp, dr->base,
749 (dr->entry_size * dr->num_entries),
750 dr->cookies, dr->ncookies);
751 dr->base = NULL;
752 dr->entry_size = 0;
753 dr->num_entries = 0;
754 dr->pending = 0;
755 dr->ncookies = 0;
1089 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
1092 for (idx = dr->cons; idx != dr->prod; idx = vio_dring_next(dr, idx)) {
1093 struct vio_disk_desc *desc = vio_dring_entry(dr, idx);
1099 dr->cons = vio_dring_next(dr, idx);