Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Aug 2010 18:25:48 GMT
From:      Hans Petter Selasky <hselasky@skunkworks.freebsd.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 182098 for review
Message-ID:  <201008111825.o7BIPmJg083703@skunkworks.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@182098?ac=10

Change 182098 by hselasky@hselasky_laptop001 on 2010/08/08 19:22:10

	
	USB controller (XHCI):
		- make sure we don't claim done until the STATUS
		stage is complete for control transactions or the
		next packet for isochronous transfers.

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/controller/xhci.c#20 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/controller/xhci.c#20 (text+ko) ====

@@ -563,7 +563,8 @@
 		/* Check for short transfer */
 		if (len > 0) {
 			if (xfer->flags_int.short_frames_ok || 
-			    xfer->flags_int.isochronous_xfr) {
+			    xfer->flags_int.isochronous_xfr ||
+			    xfer->flags_int.control_xfr) {
 				/* follow alt next */
 				td = td->alt_next;
 			} else {
@@ -738,8 +739,10 @@
 			 */
 			if (td->remainder > 0) {
 				DPRINTF("TD has short pkt\n");
-				if (xfer->flags_int.short_frames_ok) {
-					/* follow alt next */
+				if (xfer->flags_int.short_frames_ok ||
+				    xfer->flags_int.isochronous_xfr ||
+				    xfer->flags_int.control_xfr) {
+					/* try to follow follow alt next */
 					if (td->alt_next != NULL) {
 						xfer->td_transfer_cache = td->alt_next;
 						break;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008111825.o7BIPmJg083703>