aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikram Pandita <vikram.pandita@ti.com>2011-10-30 15:55:09 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-11-14 19:46:07 -0500
commit332960bd7eb48ef21923b4876e7fe3487d6bf11c (patch)
tree0f41733ceaa5b21dc369fde8a5e26434b93abb81
parent4b6181caa411ccb91ff4aad10b83d62d5a0464d3 (diff)
USB: ehci: report Data Buffer Error in debug mode
Data Buffer Error as per spec section 4.15.1.1.2 results when there is Underrun or Overrun condition. This error is considered non-fatal and never gets reported. Its a very good indication on things going wrong at system level, like running memory at much slower speed. This is a good error to flag allowing system level corrections. An issue was found with OMAP4460 board where DDR had to be run at full speed and this logging helped. Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> Reviewed-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/usb/host/ehci-q.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
index 4e4066c35a09..f136f7f1c4f4 100644
--- a/drivers/usb/host/ehci-q.c
+++ b/drivers/usb/host/ehci-q.c
@@ -373,6 +373,17 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh)
373 retry_xacterr: 373 retry_xacterr:
374 if ((token & QTD_STS_ACTIVE) == 0) { 374 if ((token & QTD_STS_ACTIVE) == 0) {
375 375
376 /* Report Data Buffer Error: non-fatal but useful */
377 if (token & QTD_STS_DBE)
378 ehci_dbg(ehci,
379 "detected DataBufferErr for urb %p ep%d%s len %d, qtd %p [qh %p]\n",
380 urb,
381 usb_endpoint_num(&urb->ep->desc),
382 usb_endpoint_dir_in(&urb->ep->desc) ? "in" : "out",
383 urb->transfer_buffer_length,
384 qtd,
385 qh);
386
376 /* on STALL, error, and short reads this urb must 387 /* on STALL, error, and short reads this urb must
377 * complete and all its qtds must be recycled. 388 * complete and all its qtds must be recycled.
378 */ 389 */