aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/wusbcore
diff options
context:
space:
mode:
authorThomas Pugliese <thomas.pugliese@gmail.com>2014-02-28 16:06:51 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-28 19:14:48 -0500
commitd1c5dd6f8edf16d2ed5a9a3d023b6f3f091cc42d (patch)
treea17a67eec3e8d8af894f8de95dcf9eee3f7325f1 /drivers/usb/wusbcore
parentecf3701cede840476b012ac4796f77c6dd9ee623 (diff)
usb: wusbcore: add info to HWA debug prints
This patch adds a debug print in the transfer dequeue case where a transfer result arrives for a transfer that has already been cleaned up. It also adds the transfer ID to some debug prints and prints error codes as signed integers in a couple of others. Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/wusbcore')
-rw-r--r--drivers/usb/wusbcore/wa-xfer.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
index ff1de5e396a4..0636206f75ab 100644
--- a/drivers/usb/wusbcore/wa-xfer.c
+++ b/drivers/usb/wusbcore/wa-xfer.c
@@ -369,13 +369,13 @@ static unsigned __wa_xfer_is_done(struct wa_xfer *xfer)
369 break; 369 break;
370 case WA_SEG_ERROR: 370 case WA_SEG_ERROR:
371 xfer->result = seg->result; 371 xfer->result = seg->result;
372 dev_dbg(dev, "xfer %p ID %08X#%u: ERROR result %zu(0x%08zX)\n", 372 dev_dbg(dev, "xfer %p ID %08X#%u: ERROR result %zi(0x%08zX)\n",
373 xfer, wa_xfer_id(xfer), seg->index, seg->result, 373 xfer, wa_xfer_id(xfer), seg->index, seg->result,
374 seg->result); 374 seg->result);
375 goto out; 375 goto out;
376 case WA_SEG_ABORTED: 376 case WA_SEG_ABORTED:
377 xfer->result = seg->result; 377 xfer->result = seg->result;
378 dev_dbg(dev, "xfer %p ID %08X#%u: ABORTED result %zu(0x%08zX)\n", 378 dev_dbg(dev, "xfer %p ID %08X#%u: ABORTED result %zi(0x%08zX)\n",
379 xfer, wa_xfer_id(xfer), seg->index, seg->result, 379 xfer, wa_xfer_id(xfer), seg->index, seg->result,
380 seg->result); 380 seg->result);
381 goto out; 381 goto out;
@@ -2262,7 +2262,7 @@ static void wa_xfer_result_chew(struct wahc *wa, struct wa_xfer *xfer,
2262 } 2262 }
2263 if (usb_status & 0x80) { 2263 if (usb_status & 0x80) {
2264 seg->result = wa_xfer_status_to_errno(usb_status); 2264 seg->result = wa_xfer_status_to_errno(usb_status);
2265 dev_err(dev, "DTI: xfer %p#:%08X:%u failed (0x%02x)\n", 2265 dev_err(dev, "DTI: xfer %p 0x%08X:#%u failed (0x%02x)\n",
2266 xfer, xfer->id, seg->index, usb_status); 2266 xfer, xfer->id, seg->index, usb_status);
2267 seg->status = ((usb_status & 0x7F) == WA_XFER_STATUS_ABORTED) ? 2267 seg->status = ((usb_status & 0x7F) == WA_XFER_STATUS_ABORTED) ?
2268 WA_SEG_ABORTED : WA_SEG_ERROR; 2268 WA_SEG_ABORTED : WA_SEG_ERROR;
@@ -2556,8 +2556,10 @@ static void wa_buf_in_cb(struct urb *urb)
2556 } 2556 }
2557 } else { 2557 } else {
2558 rpipe = xfer->ep->hcpriv; 2558 rpipe = xfer->ep->hcpriv;
2559 dev_dbg(dev, "xfer %p#%u: data in done (%zu bytes)\n", 2559 dev_dbg(dev,
2560 xfer, seg->index, seg->result); 2560 "xfer %p 0x%08X#%u: data in done (%zu bytes)\n",
2561 xfer, wa_xfer_id(xfer), seg->index,
2562 seg->result);
2561 rpipe_ready = rpipe_avail_inc(rpipe); 2563 rpipe_ready = rpipe_avail_inc(rpipe);
2562 done = __wa_xfer_mark_seg_as_done(xfer, seg, 2564 done = __wa_xfer_mark_seg_as_done(xfer, seg,
2563 WA_SEG_DONE); 2565 WA_SEG_DONE);
@@ -2575,8 +2577,9 @@ static void wa_buf_in_cb(struct urb *urb)
2575 spin_lock_irqsave(&xfer->lock, flags); 2577 spin_lock_irqsave(&xfer->lock, flags);
2576 rpipe = xfer->ep->hcpriv; 2578 rpipe = xfer->ep->hcpriv;
2577 if (printk_ratelimit()) 2579 if (printk_ratelimit())
2578 dev_err(dev, "xfer %p#%u: data in error %d\n", 2580 dev_err(dev, "xfer %p 0x%08X#%u: data in error %d\n",
2579 xfer, seg->index, urb->status); 2581 xfer, wa_xfer_id(xfer), seg->index,
2582 urb->status);
2580 if (edc_inc(&wa->nep_edc, EDC_MAX_ERRORS, 2583 if (edc_inc(&wa->nep_edc, EDC_MAX_ERRORS,
2581 EDC_ERROR_TIMEFRAME)){ 2584 EDC_ERROR_TIMEFRAME)){
2582 dev_err(dev, "DTO: URB max acceptable errors " 2585 dev_err(dev, "DTO: URB max acceptable errors "
@@ -2670,11 +2673,15 @@ static void wa_dti_cb(struct urb *urb)
2670 xfer_result->hdr.bNotifyType); 2673 xfer_result->hdr.bNotifyType);
2671 break; 2674 break;
2672 } 2675 }
2676 xfer_id = le32_to_cpu(xfer_result->dwTransferID);
2673 usb_status = xfer_result->bTransferStatus & 0x3f; 2677 usb_status = xfer_result->bTransferStatus & 0x3f;
2674 if (usb_status == WA_XFER_STATUS_NOT_FOUND) 2678 if (usb_status == WA_XFER_STATUS_NOT_FOUND) {
2675 /* taken care of already */ 2679 /* taken care of already */
2680 dev_dbg(dev, "%s: xfer 0x%08X#%u not found.\n",
2681 __func__, xfer_id,
2682 xfer_result->bTransferSegment & 0x7f);
2676 break; 2683 break;
2677 xfer_id = le32_to_cpu(xfer_result->dwTransferID); 2684 }
2678 xfer = wa_xfer_get_by_id(wa, xfer_id); 2685 xfer = wa_xfer_get_by_id(wa, xfer_id);
2679 if (xfer == NULL) { 2686 if (xfer == NULL) {
2680 /* FIXME: transaction not found. */ 2687 /* FIXME: transaction not found. */