From owner-FreeBSD-users-jp@jp.FreeBSD.org Fri Dec  5 23:08:51 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id hB5E8pa09677;
	Fri, 5 Dec 2003 23:08:51 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from mx.alles.or.jp (mx.alles.or.jp [210.231.151.65])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id hB5E8oM09672
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Fri, 5 Dec 2003 23:08:50 +0900 (JST)
	(envelope-from yotch@alles.or.jp)
Received: from mercury.local (pl1081.nas928.o-tokyo.nttpc.ne.jp [61.197.76.57])
	by mx.alles.or.jp (8.9.3/3.7W-ALLESNET) with ESMTP id XAA28831;
	Fri, 5 Dec 2003 23:08:49 +0900 (JST)
Message-Id: <200312051408.XAA28831@mx.alles.or.jp>
Received: from uranus.local (uranus [192.168.0.15])
	by mercury.local (8.12.3p3/3.7W) with SMTP id hB5E8m4N011738;
	Fri, 5 Dec 2003 23:08:48 +0900 (JST)
From: Yotch <yotch@alles.or.jp>
To: FreeBSD-users-jp@jp.FreeBSD.org
In-Reply-To: <200312040421.NAA26450@nikon.co.jp>
References: <200312040421.NAA26450@nikon.co.jp>
X-Mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-portbld-freebsd5.1)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 5 Dec 2003 23:14:14 +0900
X-Sequence: FreeBSD-users-jp 77448
Subject: [FreeBSD-users-jp 77448] Re: USB =?ISO-2022-JP?B?GyRCJUcbKEI=?=
 =?ISO-2022-JP?B?GyRCJVAlJCU5SHNGMDpuSnM5cBsoQg==?= (USB Flash
 Memory)
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: yotch@alles.or.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+031103

$BKL_7$G$9!#(B

        $B!H(BThu, 04 Dec 2003 13:21:00 +0900$B!I:"!"(B"Hisao Osawa" <osawa.hisao@nikon.co.jp> $B$5$s$O(B
        $B!H(B[FreeBSD-users-jp 77433] USB $B%G%P%$%9HsF0:nJs9p(B (USB Flash Memory)$B!I(B
        $B$K$D$$$FG.$/8l$C$F$/$l$^$7$?!#(B

 >   $B$J$s$+!"$A$g$C$H9)IW$9$k$@$1$GF0$-$=$&$J5$$b$9$k$N$G$9$,!#(B
 > 
 > 1. $B$*;H$$$N(B USB $B%G%P%$%9$N@5<0L>>N!"%a!<%+!<!#(B
 >    $B$G$-$l$P@=IJ$X$N(B URL$B!"$I$s$J%G%P%$%9$+4JC1$J@bL@!#(B
 > 
 >   $B%a!<%+!<(B: $B%"%$!&%*!<!&%G!<%?(B
 >   $B>&IJL>(B: EasyDisk Platinum
 >   $B7?HV(B: EDP-256M
 >   $B@=IJ$X$N(BURL: http://www.iodata.jp/prod/pccard/edc/2003/edp/index.htm
 >   $B@bL@(B: 256MB $B$N(B USB Flash Memory $B$G$9!#(B
$B;29M$K$J$k$+$I$&$+J,$+$j$^$;$s$,!"(B

    Subject: [FreeBSD-users-jp 77308] USB $B%G%P%$%9F0:nJs9p(B !! (Rio SU30 512MB)
    Message-Id: <200311220756.QAA10611@mx.alles.or.jp>
    Date: Sat, 22 Nov 2003 17:01:03 +0900

$B$GJs9p$7$?$d$jJ}$G!"(BRio SU30 512MB $B$,(B FreeBSD 4.9-RELEASE$B$G$bF0:n$7$^$7$?!#(B
Rio SU30$B$O!"$$$A$*$&%9%H%l!<%8%/%i%9BP1~$H8@$&$3$H$K$J$C$F$$$k$N$G$9$,!"(B
$BAG$N$^$^$G$O!"(B5.1-RELEASE$B$G$b(B 4.9-RELESE$B$G$bF0$-$^$;$s!#(B
$BM}M3$O$?$V$s(B [FreeBSD-users-jp 67104] $B$+$i;O$^$k0lO"$N%9%l%C%I$GO@$8$i$l$F$$$k(B
$B860x$K$h$k$b$N$H;W$o$l$^$9!#(B

$BG'<1$7$?$H$-$N(B console$B%a%C%;!<%8$O"-$3$s$J46$8$G$9!#(B
  umass0: RIO   Audio Player, rev 1.10/10.00, addr 2
  umass0: Get Max Lun not supported (IOERROR)
  da0 at umass-sim0 bus 0 target 0 lun 0
  da0: <DNNA RIO Audio Player 0100> Removable Direct Access SCSI-4 device 
  da0: 650KB/s transfers
  da0: 492MB (1007872 512 byte sectors: 64H 32S/T 492C)
  Dec  5 10:17:42 neptune su: yotch to root on /dev/ttyp0
  umass0: BBB reset failed, IOERROR
  umass0: BBB bulk-in clear stall failed, IOERROR
  umass0: BBB bulk-out clear stall failed, IOERROR
  umass0: BBB reset failed, IOERROR
  umass0: BBB bulk-in clear stall failed, IOERROR
  umass0: BBB bulk-out clear stall failed, IOERROR
  (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x10, scsi status == 0x0
  umass0: BBB reset failed, IOERROR
  umass0: BBB bulk-in clear stall failed, IOERROR
  umass0: BBB bulk-out clear stall failed, IOERROR
  umass0: at uhub0 port 1 (addr 2) disconnected
  (da0:umass-sim0:0:0:0): lost device
  (da0:umass-sim0:0:0:0): removing device entry
  umass0: detached
$B$J$K$d$i(B IOERROR$B$,=P$F$$$^$9$,!"(Bja-msdosfs$B$G$A$c$s$H%^%&%s%H$G$-!"(B
$BF|K\8lL>$N%G%#%l%/%H%j$K$b%"%/%;%9$G$-$^$9!#(B
$B%U%!%$%k$N%3%T!<$b>/!9CY$$$G$9$,LdBj$"$j$^$;$s$G$7$?!#(B
# mount$B;~$K;H$C$?%G%P%$%9L>$O(B /dev/da0s1$B$G$7$?!#(B

FreeBSD 4.9-RELEASE$B$G$N(B scsi_da.c$B$KBP$9$kJQ99E@$O!"0J2<$N$h$&$J$b$N$G$7$?!#(B

---------------------------------$B"-$3$3$+$i"-(B---------------------------------
--- sys/cam/scsi/scsi_da.c.orig	Mon Oct 27 15:45:31 2003
+++ sys/cam/scsi/scsi_da.c	Wed Dec  3 19:12:03 2003
@@ -425,6 +425,9 @@
 
 static int da_retry_count = DA_DEFAULT_RETRY;
 static int da_default_timeout = DA_DEFAULT_TIMEOUT;
+#if 1
+static int da_no_6_byte = 0;
+#endif
 
 SYSCTL_NODE(_kern, OID_AUTO, cam, CTLFLAG_RD, 0, "CAM Subsystem");
 SYSCTL_NODE(_kern_cam, OID_AUTO, da, CTLFLAG_RD, 0,
@@ -435,6 +438,11 @@
 SYSCTL_INT(_kern_cam_da, OID_AUTO, default_timeout, CTLFLAG_RW,
            &da_default_timeout, 0, "Normal I/O timeout (in seconds)");
 TUNABLE_INT("kern.cam.da.default_timeout", &da_default_timeout);
+#if 1
+SYSCTL_INT(_kern_cam_da, OID_AUTO, no_6_byte, CTLFLAG_RW,
+           &da_no_6_byte, 0, "No 6 bytes commands");
+TUNABLE_INT("kern.cam.da.no_6_byte", &da_no_6_byte);
+#endif
 
 /*
  * DA_ORDEREDTAG_INTERVAL determines how often, relative
@@ -1384,6 +1392,10 @@
 			} else {
 				tag_code = MSG_SIMPLE_Q_TAG;
 			}
+#if 1
+			if (da_no_6_byte && softc->minimum_cmd_size == 6)
+				softc->minimum_cmd_size = 10;
+#endif
 			scsi_read_write(&start_ccb->csio,
 					/*retries*/da_retry_count,
 					dadone,
@@ -1575,8 +1587,14 @@
 			} else {
 				bp->b_resid = csio->resid;
 				bp->b_error = 0;
-				if (bp->b_resid != 0)
+				if (bp->b_resid != 0) {
+#if 1
+					/* Short transfer ??? */
+					if (cmd6workaround(done_ccb) == ERESTART)
+						return;
+#endif
 					bp->b_flags |= B_ERROR;
+				}
 			}
 			if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0)
 				cam_release_devq(done_ccb->ccb_h.path,
@@ -1586,8 +1604,13 @@
 						 /*getcount_only*/0);
 		} else {
 			bp->b_resid = csio->resid;
-			if (csio->resid > 0)
+			if (csio->resid > 0) {
+#if 1
+				if (cmd6workaround(done_ccb) == ERESTART)
+					return;
+#endif
 				bp->b_flags |= B_ERROR;
+			}
 		}
 
 		/*
---------------------------------$B",$3$3$^$G",(B---------------------------------

