Lines Matching refs:dr
117 static inline u32 vdc_tx_dring_avail(struct vio_dring_state *dr) in vdc_tx_dring_avail() argument
119 return vio_dring_avail(dr, VDC_TX_RING_SIZE); in vdc_tx_dring_avail()
180 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_blk_queue_start() local
186 if (port->disk && vdc_tx_dring_avail(dr) * 100 / VDC_TX_RING_SIZE >= 50) in vdc_blk_queue_start()
306 static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr, in vdc_end_one() argument
309 struct vio_disk_desc *desc = vio_dring_entry(dr, index); in vdc_end_one()
318 dr->cons = vio_dring_next(dr, index); in vdc_end_one()
335 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_ack() local
338 if (unlikely(pkt->dring_ident != dr->ident || in vdc_ack()
343 vdc_end_one(port, dr, pkt->start_idx); in vdc_ack()
426 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in __vdc_tx_trigger() local
434 .dring_ident = dr->ident, in __vdc_tx_trigger()
435 .start_idx = dr->prod, in __vdc_tx_trigger()
436 .end_idx = dr->prod, in __vdc_tx_trigger()
441 hdr.seq = dr->snd_nxt; in __vdc_tx_trigger()
446 dr->snd_nxt++; in __vdc_tx_trigger()
464 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in __send_request() local
493 desc = vio_dring_cur(dr); in __send_request()
503 rqe = &port->rq_arr[dr->prod]; in __send_request()
530 dr->prod = vio_dring_next(dr, dr->prod); in __send_request()
540 struct vio_dring_state *dr; in vdc_queue_rq() local
543 dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_queue_rq()
557 if (unlikely(vdc_tx_dring_avail(dr) < 1)) { in vdc_queue_rq()
574 struct vio_dring_state *dr; in generic_request() local
656 dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in generic_request()
661 desc = vio_dring_cur(dr); in generic_request()
694 dr->prod = vio_dring_next(dr, dr->prod); in generic_request()
714 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_alloc_tx_ring() local
725 dr->cookies, &ncookies, in vdc_alloc_tx_ring()
732 dr->base = dring; in vdc_alloc_tx_ring()
733 dr->entry_size = entry_size; in vdc_alloc_tx_ring()
734 dr->num_entries = VDC_TX_RING_SIZE; in vdc_alloc_tx_ring()
735 dr->prod = dr->cons = 0; in vdc_alloc_tx_ring()
736 dr->pending = VDC_TX_RING_SIZE; in vdc_alloc_tx_ring()
737 dr->ncookies = ncookies; in vdc_alloc_tx_ring()
744 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_free_tx_ring() local
746 if (dr->base) { in vdc_free_tx_ring()
747 ldc_free_exp_dring(port->vio.lp, dr->base, in vdc_free_tx_ring()
748 (dr->entry_size * dr->num_entries), in vdc_free_tx_ring()
749 dr->cookies, dr->ncookies); in vdc_free_tx_ring()
750 dr->base = NULL; in vdc_free_tx_ring()
751 dr->entry_size = 0; in vdc_free_tx_ring()
752 dr->num_entries = 0; in vdc_free_tx_ring()
753 dr->pending = 0; in vdc_free_tx_ring()
754 dr->ncookies = 0; in vdc_free_tx_ring()
1091 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_requeue_inflight() local
1094 for (idx = dr->cons; idx != dr->prod; idx = vio_dring_next(dr, idx)) { in vdc_requeue_inflight()
1095 struct vio_disk_desc *desc = vio_dring_entry(dr, idx); in vdc_requeue_inflight()
1101 dr->cons = vio_dring_next(dr, idx); in vdc_requeue_inflight()