]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/host/ehci-q.c
USB: EHCI: Don't use NO_IRQ in xilinx ehci driver
[~andy/linux] / drivers / usb / host / ehci-q.c
index 4e4066c35a09f35330aabea000ddb13cfbb0d68e..36ca5077cdf79df7898880024470f788b7bac45f 100644 (file)
@@ -373,6 +373,17 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh)
  retry_xacterr:
                if ((token & QTD_STS_ACTIVE) == 0) {
 
+                       /* Report Data Buffer Error: non-fatal but useful */
+                       if (token & QTD_STS_DBE)
+                               ehci_dbg(ehci,
+                                       "detected DataBufferErr for urb %p ep%d%s len %d, qtd %p [qh %p]\n",
+                                       urb,
+                                       usb_endpoint_num(&urb->ep->desc),
+                                       usb_endpoint_dir_in(&urb->ep->desc) ? "in" : "out",
+                                       urb->transfer_buffer_length,
+                                       qtd,
+                                       qh);
+
                        /* on STALL, error, and short reads this urb must
                         * complete and all its qtds must be recycled.
                         */
@@ -647,7 +658,7 @@ qh_urb_transaction (
        /*
         * data transfer stage:  buffer setup
         */
-       i = urb->num_sgs;
+       i = urb->num_mapped_sgs;
        if (len > 0 && i > 0) {
                sg = urb->sg;
                buf = sg_dma_address(sg);