Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Jul 2006 18:23:12 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 102576 for review
Message-ID:  <200607271823.k6RINC9M007354@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=102576

Change 102576 by hselasky@hselasky_mini_itx on 2006/07/27 18:22:38

	It appears some USB devices are broken, and does not work after clearing
	STALL on the INTERRUPT pipe. Hence the DATA-TOGGLE bit is not important when
	only short packets are sent, with length less than wMaxPacketSize, only clear 
	stall on BULK endpoints, and INTERRUPT endpoints that transfer more than 
	wMaxPacketSize bytes, per transfer.

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/ubsa.c#7 edit
.. //depot/projects/usb/src/sys/dev/usb/ukbd.c#9 edit
.. //depot/projects/usb/src/sys/dev/usb/ulpt.c#11 edit
.. //depot/projects/usb/src/sys/dev/usb/umodem.c#9 edit
.. //depot/projects/usb/src/sys/dev/usb/ums.c#9 edit
.. //depot/projects/usb/src/sys/dev/usb/uplcom.c#8 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#13 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#11 edit
.. //depot/projects/usb/src/sys/dev/usb/uvisor.c#7 edit
.. //depot/projects/usb/src/sys/dev/usb/uvscom.c#9 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/ubsa.c#7 (text+ko) ====

@@ -745,8 +745,7 @@
 
 	/* clear stall first: */
 	sc->sc_flag |= (UBSA_FLAG_WRITE_STALL|
-			UBSA_FLAG_READ_STALL|
-			UBSA_FLAG_INTR_STALL);
+			UBSA_FLAG_READ_STALL);
 
 	usbd_transfer_start(sc->sc_xfer[4]);
 	return 0;

==== //depot/projects/usb/src/sys/dev/usb/ukbd.c#9 (text+ko) ====

@@ -705,10 +705,6 @@
 	    genkbd_diag(kbd, bootverbose);
 	}
 
-	/* clear stall first */
-
-	sc->sc_flags |= UKBD_FLAG_INTR_STALL;
-
 	/* start the keyboard */
 
 	usbd_transfer_start(sc->sc_xfer[0]);

==== //depot/projects/usb/src/sys/dev/usb/ulpt.c#11 (text+ko) ====


==== //depot/projects/usb/src/sys/dev/usb/umodem.c#9 (text+ko) ====

@@ -538,8 +538,7 @@
 
 	/* clear stall first */
 	sc->sc_flag |= (UMODEM_FLAG_READ_STALL|
-			UMODEM_FLAG_WRITE_STALL|
-			UMODEM_FLAG_INTR_STALL);
+			UMODEM_FLAG_WRITE_STALL);
 
 	if (sc->sc_xfer_intr[0]) {
 	    usbd_transfer_start(sc->sc_xfer_intr[0]);

==== //depot/projects/usb/src/sys/dev/usb/ums.c#9 (text+ko) ====

@@ -735,10 +735,6 @@
 	sc->sc_status.dz = 0;
 	/* sc->sc_status.dt = 0; */
 
-	/* clear stall first */
-
-	sc->sc_flags |= UMS_FLAG_INTR_STALL;
-
 	/* start interrupt transfer */
 
 	usbd_transfer_start(sc->sc_xfer[0]);

==== //depot/projects/usb/src/sys/dev/usb/uplcom.c#8 (text+ko) ====

@@ -776,8 +776,7 @@
 	DPRINTF(0, "sc=%p\n", sc);
 
 	/* clear stall first */
-	sc->sc_flag |= (UPLCOM_FLAG_INTR_STALL|
-			UPLCOM_FLAG_READ_STALL|
+	sc->sc_flag |= (UPLCOM_FLAG_READ_STALL|
 			UPLCOM_FLAG_WRITE_STALL);
 
 	usbd_transfer_start(sc->sc_xfer_intr[0]);

==== //depot/projects/usb/src/sys/dev/usb/usb_subr.h#13 (text+ko) ====


==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#11 (text+ko) ====


==== //depot/projects/usb/src/sys/dev/usb/uvisor.c#7 (text+ko) ====


==== //depot/projects/usb/src/sys/dev/usb/uvscom.c#9 (text+ko) ====

@@ -473,10 +473,6 @@
 	    goto detach;
 	}
 
-	/* clear stall first */
-
-	sc->sc_flag |= UVSCOM_FLAG_INTR_STALL;
-
 	/* start interrupt pipe */
 
 	usbd_transfer_start(sc->sc_xfer[4]);



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