Subject: kern/16946: umass quirks for sony MSC memory stick
To: None <gnats-bugs@gnats.netbsd.org>
From: john heasley <heas@shrubbery.net>
List: netbsd-bugs
Date: 05/21/2002 17:55:32
>Number:         16946
>Category:       kern
>Synopsis:       umass quirks for sony MSC memory stick
>Confidential:   no
>Severity:       non-critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 21 10:56:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     john heasley
>Release:        NetBSD 1.5ZC
>Organization:
	
>Environment:
Architecture: i386
Machine: i386
>Description:
	the sony MSC memory stick has not worked 100% on the sony vaio,
	pcg-z505ls in my case.  with umass debugging printfs enabled, i
	can the endpoints being stalled and cleared repeatedly during
	operations that write to the memory stick.

	after going through the umass spec and a little trial and error, i
	came up with following changes to umass_quirks.c for the MSC memory
	stick.

	the memory stick slot on this vaio z505ls with an 8m or 128m stick
	now works reliably.  i'm not getting errors writing data to a mounted
	partition (msdos created on a sony dsc camera).  this might fix the
	similar errors with accessing the memory stick through a dsc camera,
	but i havent tried it.

	i have no idea why it reports 'drive offline' below when it has medium
	inserted.

dmesg w/o medium:
uhub1 at uhub0 port 1
uhub1: Philips Semiconductors hub, class 9/0, rev 1.10/1.10, addr 2
uhub1: 3 ports with 3 removable, self powered
umass0 at uhub1 port 1 configuration 1 interface 0
umass0: Sony USB Memory Stick Slot, rev 1.10/1.31, addr 3
umass0: using UFI over CBI
atapibus0 at umass0 channel 0: 2 targets
sd0 at atapibus0 drive 0: <, , > type 0 direct fixed
sd0: drive offline
boot device: wd0

dmesg w/ medium:
uhub1 at uhub0 port 1
uhub1: Philips Semiconductors hub, class 9/0, rev 1.10/1.10, addr 2
uhub1: 3 ports with 3 removable, self powered
umass0 at uhub1 port 1 configuration 1 interface 0
umass0: Sony USB Memory Stick Slot, rev 1.10/1.31, addr 3
umass0: using UFI over CBI
atapibus0 at umass0 channel 0: 2 targets
sd0 at atapibus0 drive 0: <, , > type 0 direct fixed
sd0: drive offline
boot device: wd0

>How-To-Repeat:
	write to a memory stick.  errors will result that at the very
	least cause delays.
>Fix:
	
Index: umass_quirks.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/usb/umass_quirks.c,v
retrieving revision 1.13
diff -u -r1.13 umass_quirks.c
--- umass_quirks.c	2002/04/22 12:48:40	1.13
+++ umass_quirks.c	2002/05/20 03:19:46
@@ -155,11 +155,11 @@
 	},
 
 	{ { USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC },
-	  UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
-	  UMASS_QUIRK_FORCE_SHORT_INQUIRY,
-	  0,
+	  UMASS_WPROTO_CBI, UMASS_CPROTO_UFI,
+	  UMASS_QUIRK_FORCE_SHORT_INQUIRY | UMASS_QUIRK_RS_NO_CLEAR_UA,
+	  PQUIRK_NOMODESENSE,
 	  UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
-	  NULL, umass_fixup_sony
+	  NULL, NULL
 	},
 
 	{ { USB_VENDOR_SONY, USB_PRODUCT_ANY },

>Release-Note:
>Audit-Trail:
>Unformatted: