Lines Matching refs:ring

36 static int last_trb(struct xhci_ctrl *ctrl, struct xhci_ring *ring,  in last_trb()  argument
39 if (ring == ctrl->event_ring) in last_trb()
56 struct xhci_ring *ring, in last_trb_on_last_seg() argument
60 if (ring == ctrl->event_ring) in last_trb_on_last_seg()
62 (seg->next == ring->first_seg)); in last_trb_on_last_seg()
89 static void inc_enq(struct xhci_ctrl *ctrl, struct xhci_ring *ring, in inc_enq() argument
95 chain = le32_to_cpu(ring->enqueue->generic.field[3]) & TRB_CHAIN; in inc_enq()
96 next = ++(ring->enqueue); in inc_enq()
102 while (last_trb(ctrl, ring, ring->enq_seg, next)) { in inc_enq()
103 if (ring != ctrl->event_ring) { in inc_enq()
129 if (last_trb_on_last_seg(ctrl, ring, in inc_enq()
130 ring->enq_seg, next)) in inc_enq()
131 ring->cycle_state = (ring->cycle_state ? 0 : 1); in inc_enq()
133 ring->enq_seg = ring->enq_seg->next; in inc_enq()
134 ring->enqueue = ring->enq_seg->trbs; in inc_enq()
135 next = ring->enqueue; in inc_enq()
147 static void inc_deq(struct xhci_ctrl *ctrl, struct xhci_ring *ring) in inc_deq() argument
155 if (last_trb(ctrl, ring, ring->deq_seg, ring->dequeue)) { in inc_deq()
156 if (ring == ctrl->event_ring && in inc_deq()
157 last_trb_on_last_seg(ctrl, ring, in inc_deq()
158 ring->deq_seg, ring->dequeue)) { in inc_deq()
159 ring->cycle_state = (ring->cycle_state ? 0 : 1); in inc_deq()
161 ring->deq_seg = ring->deq_seg->next; in inc_deq()
162 ring->dequeue = ring->deq_seg->trbs; in inc_deq()
164 ring->dequeue++; in inc_deq()
166 } while (last_trb(ctrl, ring, ring->deq_seg, ring->dequeue)); in inc_deq()
182 struct xhci_ring *ring, in queue_trb() argument
189 trb = &ring->enqueue->generic; in queue_trb()
196 inc_enq(ctrl, ring, more_trbs_coming); in queue_trb()
484 struct xhci_ring *ring = ctrl->devs[udev->slot_id]->eps[ep_index].ring; in reset_ep() local
498 xhci_queue_command(ctrl, (void *)((uintptr_t)ring->enqueue | in reset_ep()
499 ring->cycle_state), udev->slot_id, ep_index, TRB_SET_DEQ); in reset_ep()
521 struct xhci_ring *ring = ctrl->devs[udev->slot_id]->eps[ep_index].ring; in abort_td() local
547 xhci_queue_command(ctrl, (void *)((uintptr_t)ring->enqueue | in abort_td()
548 ring->cycle_state), udev->slot_id, ep_index, TRB_SET_DEQ); in abort_td()
611 struct xhci_ring *ring; /* EP transfer ring */ in xhci_bulk_tx() local
633 ring = virt_dev->eps[ep_index].ring; in xhci_bulk_tx()
663 ret = prepare_ring(ctrl, ring, in xhci_bulk_tx()
673 start_trb = &ring->enqueue->generic; in xhci_bulk_tx()
674 start_cycle = ring->cycle_state; in xhci_bulk_tx()
708 field |= ring->cycle_state; in xhci_bulk_tx()
744 queue_trb(ctrl, ring, (num_trbs > 1), trb_fields); in xhci_bulk_tx()
816 ep_ring = virt_dev->eps[ep_index].ring; in xhci_ctrl_tx()