* TRB is in a new segment.  This does not skip over link TRBs, and it does not
  * effect the ring dequeue or enqueue pointers.
  */
-static void next_trb(struct xhci_hcd *xhci,
-               struct xhci_ring *ring,
-               struct xhci_segment **seg,
-               union xhci_trb **trb)
+static void next_trb(struct xhci_segment **seg,
+                       union xhci_trb **trb)
 {
        if (trb_is_link(*trb) || last_trb_on_seg(*seg, *trb)) {
                *seg = (*seg)->next;
         * avoiding corrupting the command ring pointer in case the command ring
         * is stopped by the time the upper dword is written.
         */
-       next_trb(xhci, NULL, &new_seg, &new_deq);
+       next_trb(&new_seg, &new_deq);
        if (trb_is_link(new_deq))
-               next_trb(xhci, NULL, &new_seg, &new_deq);
+               next_trb(&new_seg, &new_deq);
 
        crcr = xhci_trb_virt_to_dma(new_seg, new_deq);
        xhci_write_64(xhci, crcr | CMD_RING_ABORT, &xhci->op_regs->cmd_ring);
                    link_trb_toggles_cycle(new_deq))
                        new_cycle ^= 0x1;
 
-               next_trb(xhci, ep_ring, &new_seg, &new_deq);
+               next_trb(&new_seg, &new_deq);
 
                /* Search wrapped around, bail out */
                if (new_deq == ep->ring->dequeue) {
                if (trb == td->last_trb)
                        break;
 
-               next_trb(xhci, ep_ring, &seg, &trb);
+               next_trb(&seg, &trb);
        }
 }
 
        union xhci_trb *trb = ring->dequeue;
        struct xhci_segment *seg = ring->deq_seg;
 
-       for (sum = 0; trb != stop_trb; next_trb(xhci, ring, &seg, &trb)) {
+       for (sum = 0; trb != stop_trb; next_trb(&seg, &trb)) {
                if (!trb_is_noop(trb) && !trb_is_link(trb))
                        sum += TRB_LEN(le32_to_cpu(trb->generic.field[2]));
        }