Lines Matching refs:dr

112 static inline u32 vdc_tx_dring_avail(struct vio_dring_state *dr)  in vdc_tx_dring_avail()  argument
114 return vio_dring_avail(dr, VDC_TX_RING_SIZE); in vdc_tx_dring_avail()
172 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_blk_queue_start() local
179 vdc_tx_dring_avail(dr) * 100 / VDC_TX_RING_SIZE >= 50) { in vdc_blk_queue_start()
301 static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr, in vdc_end_one() argument
304 struct vio_disk_desc *desc = vio_dring_entry(dr, index); in vdc_end_one()
313 dr->cons = vio_dring_next(dr, index); in vdc_end_one()
330 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_ack() local
333 if (unlikely(pkt->dring_ident != dr->ident || in vdc_ack()
338 vdc_end_one(port, dr, pkt->start_idx); in vdc_ack()
421 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in __vdc_tx_trigger() local
429 .dring_ident = dr->ident, in __vdc_tx_trigger()
430 .start_idx = dr->prod, in __vdc_tx_trigger()
431 .end_idx = dr->prod, in __vdc_tx_trigger()
435 hdr.seq = dr->snd_nxt; in __vdc_tx_trigger()
440 dr->snd_nxt++; in __vdc_tx_trigger()
456 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in __send_request() local
485 desc = vio_dring_cur(dr); in __send_request()
495 rqe = &port->rq_arr[dr->prod]; in __send_request()
522 dr->prod = vio_dring_next(dr, dr->prod); in __send_request()
534 struct vio_dring_state *dr; in do_vdc_request() local
537 dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in do_vdc_request()
538 if (unlikely(vdc_tx_dring_avail(dr) < 1)) in do_vdc_request()
555 struct vio_dring_state *dr; in generic_request() local
638 dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in generic_request()
643 desc = vio_dring_cur(dr); in generic_request()
676 dr->prod = vio_dring_next(dr, dr->prod); in generic_request()
696 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_alloc_tx_ring() local
707 dr->cookies, &ncookies, in vdc_alloc_tx_ring()
714 dr->base = dring; in vdc_alloc_tx_ring()
715 dr->entry_size = entry_size; in vdc_alloc_tx_ring()
716 dr->num_entries = VDC_TX_RING_SIZE; in vdc_alloc_tx_ring()
717 dr->prod = dr->cons = 0; in vdc_alloc_tx_ring()
718 dr->pending = VDC_TX_RING_SIZE; in vdc_alloc_tx_ring()
719 dr->ncookies = ncookies; in vdc_alloc_tx_ring()
726 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_free_tx_ring() local
728 if (dr->base) { in vdc_free_tx_ring()
729 ldc_free_exp_dring(port->vio.lp, dr->base, in vdc_free_tx_ring()
730 (dr->entry_size * dr->num_entries), in vdc_free_tx_ring()
731 dr->cookies, dr->ncookies); in vdc_free_tx_ring()
732 dr->base = NULL; in vdc_free_tx_ring()
733 dr->entry_size = 0; in vdc_free_tx_ring()
734 dr->num_entries = 0; in vdc_free_tx_ring()
735 dr->pending = 0; in vdc_free_tx_ring()
736 dr->ncookies = 0; in vdc_free_tx_ring()
1064 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vdc_requeue_inflight() local
1067 for (idx = dr->cons; idx != dr->prod; idx = vio_dring_next(dr, idx)) { in vdc_requeue_inflight()
1068 struct vio_disk_desc *desc = vio_dring_entry(dr, idx); in vdc_requeue_inflight()
1074 dr->cons = vio_dring_next(dr, idx); in vdc_requeue_inflight()