Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 332960bd authored by Vikram Pandita's avatar Vikram Pandita Committed by Greg Kroah-Hartman
Browse files

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: default avatarVikram Pandita <vikram.pandita@ti.com>
Reviewed-by: default avatarMarek Vasut <marek.vasut@gmail.com>
Signed-off-by: default avatarVikram Pandita <vikram.pandita@ti.com>
Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 4b6181ca
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -373,6 +373,17 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh)
 retry_xacterr:
 retry_xacterr:
		if ((token & QTD_STS_ACTIVE) == 0) {
		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
			/* on STALL, error, and short reads this urb must
			 * complete and all its qtds must be recycled.
			 * complete and all its qtds must be recycled.
			 */
			 */