|
@@ -167,10 +167,6 @@ static void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring, bool consumer
|
|
|
next = ring->dequeue;
|
|
|
}
|
|
|
addr = (unsigned long long) xhci_trb_virt_to_dma(ring->deq_seg, ring->dequeue);
|
|
|
- if (ring == xhci->cmd_ring)
|
|
|
- xhci_dbg(xhci, "Command ring deq = 0x%llx (DMA)\n", addr);
|
|
|
- else
|
|
|
- xhci_dbg(xhci, "Ring deq = 0x%llx (DMA)\n", addr);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -246,12 +242,6 @@ static void inc_enq(struct xhci_hcd *xhci, struct xhci_ring *ring,
|
|
|
next = ring->enqueue;
|
|
|
}
|
|
|
addr = (unsigned long long) xhci_trb_virt_to_dma(ring->enq_seg, ring->enqueue);
|
|
|
- if (ring == xhci->event_ring)
|
|
|
- xhci_dbg(xhci, "Event ring enq = 0x%llx (DMA)\n", addr);
|
|
|
- else if (ring == xhci->cmd_ring)
|
|
|
- xhci_dbg(xhci, "Command ring enq = 0x%llx (DMA)\n", addr);
|
|
|
- else
|
|
|
- xhci_dbg(xhci, "Ring enq = 0x%llx (DMA)\n", addr);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -634,13 +624,11 @@ static void xhci_giveback_urb_in_irq(struct xhci_hcd *xhci,
|
|
|
}
|
|
|
}
|
|
|
usb_hcd_unlink_urb_from_ep(hcd, urb);
|
|
|
- xhci_dbg(xhci, "Giveback %s URB %p\n", adjective, urb);
|
|
|
|
|
|
spin_unlock(&xhci->lock);
|
|
|
usb_hcd_giveback_urb(hcd, urb, status);
|
|
|
xhci_urb_free_priv(xhci, urb_priv);
|
|
|
spin_lock(&xhci->lock);
|
|
|
- xhci_dbg(xhci, "%s URB given back\n", adjective);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1630,7 +1618,6 @@ static int process_ctrl_td(struct xhci_hcd *xhci, struct xhci_td *td,
|
|
|
"without IOC set??\n");
|
|
|
*status = -ESHUTDOWN;
|
|
|
} else {
|
|
|
- xhci_dbg(xhci, "Successful control transfer!\n");
|
|
|
*status = 0;
|
|
|
}
|
|
|
break;
|
|
@@ -1727,7 +1714,6 @@ static int process_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td,
|
|
|
switch (trb_comp_code) {
|
|
|
case COMP_SUCCESS:
|
|
|
frame->status = 0;
|
|
|
- xhci_dbg(xhci, "Successful isoc transfer!\n");
|
|
|
break;
|
|
|
case COMP_SHORT_TX:
|
|
|
frame->status = td->urb->transfer_flags & URB_SHORT_NOT_OK ?
|
|
@@ -1837,12 +1823,6 @@ static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_td *td,
|
|
|
else
|
|
|
*status = 0;
|
|
|
} else {
|
|
|
- if (usb_endpoint_xfer_bulk(&td->urb->ep->desc))
|
|
|
- xhci_dbg(xhci, "Successful bulk "
|
|
|
- "transfer!\n");
|
|
|
- else
|
|
|
- xhci_dbg(xhci, "Successful interrupt "
|
|
|
- "transfer!\n");
|
|
|
*status = 0;
|
|
|
}
|
|
|
break;
|
|
@@ -1856,11 +1836,12 @@ static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_td *td,
|
|
|
/* Others already handled above */
|
|
|
break;
|
|
|
}
|
|
|
- xhci_dbg(xhci, "ep %#x - asked for %d bytes, "
|
|
|
- "%d bytes untransferred\n",
|
|
|
- td->urb->ep->desc.bEndpointAddress,
|
|
|
- td->urb->transfer_buffer_length,
|
|
|
- TRB_LEN(le32_to_cpu(event->transfer_len)));
|
|
|
+ if (trb_comp_code == COMP_SHORT_TX)
|
|
|
+ xhci_dbg(xhci, "ep %#x - asked for %d bytes, "
|
|
|
+ "%d bytes untransferred\n",
|
|
|
+ td->urb->ep->desc.bEndpointAddress,
|
|
|
+ td->urb->transfer_buffer_length,
|
|
|
+ TRB_LEN(le32_to_cpu(event->transfer_len)));
|
|
|
/* Fast path - was this the last TRB in the TD for this URB? */
|
|
|
if (event_trb == td->last_trb) {
|
|
|
if (TRB_LEN(le32_to_cpu(event->transfer_len)) != 0) {
|
|
@@ -1954,7 +1935,6 @@ static int handle_tx_event(struct xhci_hcd *xhci,
|
|
|
|
|
|
/* Endpoint ID is 1 based, our index is zero based */
|
|
|
ep_index = TRB_TO_EP_ID(le32_to_cpu(event->flags)) - 1;
|
|
|
- xhci_dbg(xhci, "%s - ep index = %d\n", __func__, ep_index);
|
|
|
ep = &xdev->eps[ep_index];
|
|
|
ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer));
|
|
|
ep_ctx = xhci_get_ep_ctx(xhci, xdev->out_ctx, ep_index);
|
|
@@ -2149,9 +2129,15 @@ cleanup:
|
|
|
xhci_urb_free_priv(xhci, urb_priv);
|
|
|
|
|
|
usb_hcd_unlink_urb_from_ep(bus_to_hcd(urb->dev->bus), urb);
|
|
|
- xhci_dbg(xhci, "Giveback URB %p, len = %d, "
|
|
|
- "status = %d\n",
|
|
|
- urb, urb->actual_length, status);
|
|
|
+ if ((urb->actual_length != urb->transfer_buffer_length &&
|
|
|
+ (urb->transfer_flags &
|
|
|
+ URB_SHORT_NOT_OK)) ||
|
|
|
+ status != 0)
|
|
|
+ xhci_dbg(xhci, "Giveback URB %p, len = %d, "
|
|
|
+ "expected = %x, status = %d\n",
|
|
|
+ urb, urb->actual_length,
|
|
|
+ urb->transfer_buffer_length,
|
|
|
+ status);
|
|
|
spin_unlock(&xhci->lock);
|
|
|
usb_hcd_giveback_urb(bus_to_hcd(urb->dev->bus), urb, status);
|
|
|
spin_lock(&xhci->lock);
|
|
@@ -2379,7 +2365,6 @@ static int prepare_ring(struct xhci_hcd *xhci, struct xhci_ring *ep_ring,
|
|
|
u32 ep_state, unsigned int num_trbs, gfp_t mem_flags)
|
|
|
{
|
|
|
/* Make sure the endpoint has been added to xHC schedule */
|
|
|
- xhci_dbg(xhci, "Endpoint state = 0x%x\n", ep_state);
|
|
|
switch (ep_state) {
|
|
|
case EP_STATE_DISABLED:
|
|
|
/*
|
|
@@ -2416,7 +2401,6 @@ static int prepare_ring(struct xhci_hcd *xhci, struct xhci_ring *ep_ring,
|
|
|
struct xhci_ring *ring = ep_ring;
|
|
|
union xhci_trb *next;
|
|
|
|
|
|
- xhci_dbg(xhci, "prepare_ring: pointing to link trb\n");
|
|
|
next = ring->enqueue;
|
|
|
|
|
|
while (last_trb(xhci, ring, ring->enq_seg, next)) {
|