PERFORCE change 153382 for review

Hans Petter Selasky hselasky at FreeBSD.org
Sun Nov 23 01:48:13 PST 2008


http://perforce.freebsd.org/chv.cgi?CH=153382

Change 153382 by hselasky at hselasky_laptop001 on 2008/11/23 09:47:22

	
	USB mass storage test improvements.

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_msctest.c#11 edit

Differences ...

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

@@ -72,8 +72,7 @@
 	DIR_NONE,
 };
 
-#define	BULK_SIZE 64			/* dummy */
-
+#define	BULK_SIZE		64	/* dummy */
 
 /* Command Block Wrapper */
 struct bbb_cbw {
@@ -171,7 +170,7 @@
 		.endpoint = UE_ADDR_ANY,
 		.direction = UE_DIR_OUT,
 		.mh.bufsize = BULK_SIZE,
-		.mh.flags = {.proxy_buffer = 1,.short_xfer_ok = 1,},
+		.mh.flags = {.proxy_buffer = 1,},
 		.mh.callback = &bbb_data_write_callback,
 		.mh.timeout = 4 * USB_MS_HZ,	/* 4 seconds */
 	},
@@ -279,6 +278,7 @@
 			DPRINTFN(0, "Truncating long command!\n");
 		}
 		xfer->frlengths[0] = sizeof(sc->cbw);
+		xfer->flags.stall_pipe = 1;
 
 		usb2_set_frame_data(xfer, &sc->cbw, 0);
 		usb2_start_hardware(xfer);
@@ -537,12 +537,14 @@
 repeat_inquiry:
 
 	sc->cbw.CBWCDB[0] = 0x12;	/* INQUIRY */
-
-	err = bbb_command_start(sc, DIR_IN, 0, sc->buffer, 256, 6, USB_MS_HZ);
-	if (err) {
-		err = bbb_command_start(sc, DIR_IN, 0, sc->buffer, 256, 12, USB_MS_HZ);
-		if (err) {
-			err = bbb_command_start(sc, DIR_IN, 0, sc->buffer, 256, 16, USB_MS_HZ);
+	err = bbb_command_start(sc, DIR_IN, 0,
+	    sc->buffer, 256, 6, USB_MS_HZ);
+	if (err == 1) {
+		err = bbb_command_start(sc, DIR_IN, 0,
+		    sc->buffer, 256, 12, USB_MS_HZ);
+		if (err == 1) {
+			err = bbb_command_start(sc, DIR_IN, 0,
+			    sc->buffer, 256, 16, USB_MS_HZ);
 		}
 	}
 	if ((sc->actlen != 0) && (err == 0)) {
@@ -570,7 +572,7 @@
 			err = 0;
 			goto done;
 		}
-	} else if (--timeout) {
+	} else if ((err != 2) && --timeout) {
 		usb2_pause_mtx(&sc->mtx, USB_MS_HZ);
 		goto repeat_inquiry;
 	}


More information about the p4-projects mailing list